new 运算符干了什么

Posted luckyxcc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了new 运算符干了什么相关的知识,希望对你有一定的参考价值。

为了追本溯源, 我顺便研究了new运算符具体干了什么?发现其实很简单,就干了三件事情.

var obj  = {};
obj.__proto__ = F.prototype;
F.call(obj);

第一行,我们创建了一个空对象obj;

第二行,我们将这个空对象的proto成员指向了F函数对象prototype成员对象;

第三行,我们将F函数对象的this指针替换成obj,然后再调用F函数.

我们可以这么理解: 以 new 操作符调用构造函数的时候,函数内部实际上发生以下变化:

1、创建一个空对象,并且 this 变量引用该对象,同时还继承了该函数的原型。

2、属性和方法被加入到 this 引用的对象中。

3、新创建的对象由 this 所引用,并且最后隐式的返回 this。

 

以上是关于new 运算符干了什么的主要内容,如果未能解决你的问题,请参考以下文章

前端经典面试题解密:JS的new关键字都干了什么?

前端经典面试题解密:JS的new关键字都干了什么?

js new到底干了什么,new的意义是什么?

JS中的new干了什么?

new 的过程都干了什么

js 在new一个对象的时候到底做了什么