码迷,mamicode.com
首页 > 其他好文 > 详细

new 运算符干了什么

时间:2018-06-08 12:11:53      阅读:130      评论:0      收藏:0      [点我收藏+]

标签:class   var   操作   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 运算符干了什么

标签:class   var   操作   new   操作符   引用   继承   变化   一个   

原文地址:https://www.cnblogs.com/luckyXcc/p/9154521.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!