欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

总结对JS面对对象理解

程序员文章站 2023-12-25 22:29:03
...

1.面对对象概念:

面对对象编程是一种编程方式,跟传统的面向过程编程不同,它将真实世界的各种复杂关系,抽象为一个个对象,然后由对象之间的分工与合作,完成对真实世界的模拟

每一个对象都是功能中心,具有明确分工,可以完成接受信息、处理数据、发出信息等任务。 对象可以复用,通过继承机制还可以定制。因此,面向对象编程具有灵活、代码可复用、高度模块化等特点,容易维护和开发,比起由一系列函数或指令组成的传统的过程式编程(procedural programming),更适合多人合作的大型软件项目。

2.new的原理

  1. 创建一个空对象,作为将要返回的对象实例。
  2. 将这个空对象的原型,指向构造函数的prototype属性。
  3. 将这个空对象赋值给函数内部的this关键字。
  4. 开始执行构造函数内部的代码。(完成赋值等操作)
  5. 最后返回这个对象。

简单实现:

function _new(constructor, params) {
  // arguments转数组
  var args = [].slice.call(arguments);
  // 取出构造函数
  var constructor = args.shift();
  // 创建一个空对象,继承构造函数的 prototype 属性
  var context = Object.create(constructor.prototype);
  // 执行构造函数
  var result = constructor.apply(context, args);
  // 如果返回结果是对象,就直接返回,否则返回 context 对象
  return (typeof result === 'object' && result != null) ? result : context;
}
相关标签: js面对对象

上一篇:

下一篇: