new原理:
(1) 创建了一个对象,并将其原型对象赋给其_proto_.
(2) 执行构造函数的属性赋值和方法。
(3)返回这个对象
模拟new做的的操作
function newFun(func){
var d = Object.create(func.prototype); 第一步
func.call(d); 第二步
return d; 第三步
}
例如:
function Ft(){ this.name = 'ye'}
var f = newFun(Ft)
f.constructor 输出// ƒ Ft(){ this.name = 'ye'}
网友评论