new 关键字

new 关键字

为什么需要 new?

通过 new 创建的 对象 和 构造函数 之间建立了一条原型链,原型链的建立,让原本孤立的对象有了依赖关系和继承能力,让 JavaScript 对象能以更合适的方式来映射真实世界里的对象,这是面向对象的本质。

构造函数

  • 定义:

    • 需要用 new 关键字来调用的函数

  • 为什么用:

    • 在使用对象字面量创建一系列同一类型的对象时,这些对象可能具有一些相似的特征(属性)和行为(方法),此时会产生很多重复的代码,而使用构造函数就可以实现代码的复用。

  • e.g.

function Animal(color) {
  this.color = color;
}

执行过程

  • MDN definition:

  • 创建一个空的简单 JavaScript 对象(即{});

  • 链接该对象(即设置该对象的构造函数)到另一个对象 ;

  • 将步骤 1 新创建的对象作为 this 的上下文 ;

  • 如果该函数没有返回对象,则返回 this。

  • 当我们执行var a = new A() / new A的时候:

  • var o = new Object();

  • o.__proto__ = A.prototype;

  • A.call(o)//由于这里this是指向 o,可以把什么this.name/getName绑定到 o 上.

  • 把这个 o 返回给 a; //完成var a = new A()的过程.

Last updated

Was this helpful?