前端new操作符做了什么
本教程操作系统:Windows10系统、Dell G3电脑。
在前开发中,new操作符是用来创建一个新的对象例的。当使用new操作符时,它会执行以下几个步骤:
创建一个空的简单JavaScript对象(即{})。
将这个空对象的__proto__属性指向构造函数的原型对象。
立即学习“前端免费学习笔记(深入)”;
将构造函数内部的this关键字指向这个新创建的空对象。
执行构造函数内部的代码,为这个新对象添加属性和方法。
如果构造函数返回了一个对象,则返回这个对象;否则返回这个新创建的对象。
下面我们来详细分析一下这个过程:
创建一个空的简单JavaScript对象:这个空对象将会成为将要创建的实例对象。这个对象会继承构造函数的原型对象上的属性和方法。
将这个空对象的__proto__属性指向构造函数的原型对象:原型对象是一个包含可继承属性和方法的对象。在JavaScript中,每个函数都有一个prototype属性,指向它的原型对象。当我们使用new操作符创建一个对象时,这个新对象的__proto__属性就会指向构造函数的原型对象。
将构造函数内部的this关键字指向这个新创建的空对象:在构造函数内部,通过使用this关键字,我们可以向这个新对象添加属性和方法。this关键字在这里指代了当前正在创建的实例对象。
执行构造函数内部的代码,为这个新对象添加属性和方法:在构造函数内部,我们可以向这个新对象添加属性和方法,以便将其初始化为我们想要的状态。
如果构造函数返回了一个对象,则返回这个对象;否则返回这个新创建的对象:如果构造函数内部有返回语句,并且返回的是一个对象,则返回这个对象;否则返回刚刚创建的新对象。这意味着我们可以在构造函数内部返回一个自定义的对象,而不一定是this所指向的对象。
使用new操作符创建一个对象实例时,我们会创建一个空对象,并将它的__proto__属性指向构造函数的原型对象。然后,构造函数内部的代码会被执行,以便向这个新对象添加属性和方法。最后,如果构造函数内部有返回语句,则返回指定的对象;否则返回这个新创建的对象。这样,我们就可以使用构造函数来创建多个实例对象,它们都可以共享构造函数的原型对象上的属性和方法。