您的位置:首页 > 教程笔记 > 前端笔记

前端new操作符做了什么

2020-12-04 17:47:55 前端笔记 133

在前开发中,new操作符是用来创建一个新的对象例的。当使用new操作符时,它会执行以下几个步骤:

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

    将这个空对象的__proto__属性指向构造函数的原型对象。

    将构造函数内部的this关键字指向这个新创建的空对象。

    执行构造函数内部的代码,为这个新对象添加属性和方法。

    如果构造函数返回了一个对象,则返回这个对象;否则返回这个新创建的对象。

下面我们来详细分析一下这个过程:

创建一个空的简单JavaScript对象:这个空对象将会成为将要创建的实例对象。这个对象会继承构造函数的原型对象上的属性和方法。

将这个空对象的__proto__属性指向构造函数的原型对象:原型对象是一个包含可继承属性和方法的对象。在JavaScript中,每个函数都有一个prototype属性,指向它的原型对象。当我们使用new操作符创建一个对象时,这个新对象的__proto__属性就会指向构造函数的原型对象。

将构造函数内部的this关键字指向这个新创建的空对象:在构造函数内部,通过使用this关键字,我们可以向这个新对象添加属性和方法。this关键字在这里指代了当前正在创建的实例对象。

执行构造函数内部的代码,为这个新对象添加属性和方法:在构造函数内部,我们可以向这个新对象添加属性和方法,以便将其初始化为我们想要的状态。

如果构造函数返回了一个对象,则返回这个对象;否则返回这个新创建的对象:如果构造函数内部有返回语句,并且返回的是一个对象,则返回这个对象;否则返回刚刚创建的新对象。这意味着我们可以在构造函数内部返回一个自定义的对象,而不一定是this所指向的对象。

使用new操作符创建一个对象实例时,我们会创建一个空对象,并将它的__proto__属性指向构造函数的原型对象。然后,构造函数内部的代码会被执行,以便向这个新对象添加属性和方法。最后,如果构造函数内部有返回语句,则返回指定的对象;否则返回这个新创建的对象。这样,我们就可以使用构造函数来创建多个实例对象,它们都可以共享构造函数的原型对象上的属性和方法。

相关推荐