使用new命令所做的几件事:
1创建(或者说构造)一个全新的对象.
2这个新对象汇报执行[[原型]]连接.
3这个新对象会绑定到函数调用的this。
4如果函数没有返回其他对象,那么new表达式中的函数调用会自动返回这个新对象。
以上过程的伪代码:
let obj = new funA();
1let temp = {};
2temp._proto_ = funA.prototype;
3funA.bind(temp);
4obj = return funA() || temp;
博客介绍了使用new命令所做的几件事,包括创建全新对象、执行原型连接、将新对象绑定到函数调用的this,若函数无其他返回则自动返回该新对象,还给出了此过程的伪代码。
使用new命令所做的几件事:
1创建(或者说构造)一个全新的对象.
2这个新对象汇报执行[[原型]]连接.
3这个新对象会绑定到函数调用的this。
4如果函数没有返回其他对象,那么new表达式中的函数调用会自动返回这个新对象。
以上过程的伪代码:
let obj = new funA();
1let temp = {};
2temp._proto_ = funA.prototype;
3funA.bind(temp);
4obj = return funA() || temp;
转载于:https://www.cnblogs.com/wpw1215/p/10917040.html
1285
4000
1614

被折叠的 条评论
为什么被折叠?