返回

new操作符的原理揭秘,对象创建的神秘历程

前端

1. 构造函数:对象的蓝图

在 JavaScript 中,构造函数是用来创建对象的蓝图。它定义了对象的数据和行为的模板。我们可以通过 new 操作符来调用构造函数,从而创建一个新的对象。

例如,我们定义了一个名为 Person 的构造函数:

function Person(name, age) {
  this.name = name;
  this.age = age;
}

这个构造函数定义了两个属性:name 和 age。我们可以通过 new 操作符来调用这个构造函数,并传入两个参数:

const person = new Person('John Doe', 30);

这样,我们就创建了一个新的 Person 对象,并且这个对象具有 name 和 age 两个属性。

2. new 操作符:对象的创建者

new 操作符是用来创建对象的一个运算符。它调用构造函数,并传入必要的参数。new 操作符会经历以下几个步骤:

  1. 创建一个新的空对象。
  2. 将构造函数的 this 指向这个新的对象。
  3. 执行构造函数的代码。
  4. 返回这个新的对象。

3. 对象的实例化

当我们使用 new 操作符来调用构造函数时,我们就创建了一个新的对象实例。这个对象实例继承了构造函数的所有属性和方法。

例如,我们创建了一个 Person 对象:

const person = new Person('John Doe', 30);

这个 person 对象继承了 Person 构造函数的所有属性和方法。我们可以通过以下方式来访问这些属性和方法:

person.name // "John Doe"
person.age // 30
person.greet() // "Hello, my name is John Doe"

4. 原型链

每个对象都有一个原型对象。原型对象是该对象继承属性和方法的源对象。我们可以通过以下方式来访问对象的原型对象:

person.__proto__ // Person {}

原型对象也是一个对象,它也有自己的原型对象。如此递归下去,直到原型对象为 null。

5. 总结

new 操作符是用来创建对象的一个运算符。它调用构造函数,并传入必要的参数。new 操作符会经历以下几个步骤:

  1. 创建一个新的空对象。
  2. 将构造函数的 this 关键字指向这个新的对象。
  3. 执行构造函数的代码。
  4. 返回这个新的对象。

当我们使用 new 操作符来调用构造函数时,我们就创建了一个新的对象实例。这个对象实例继承了构造函数的所有属性和方法。

每个对象都有一个原型对象。原型对象是该对象继承属性和方法的源对象。我们可以通过以下方式来访问对象的原型对象:

person.__proto__ // Person {}

原型对象也是一个对象,它也有自己的原型对象。如此递归下去,直到原型对象为 null。