js new 做了什么,模拟new的操作
2020-05-21 本文已影响0人
爱看小说的叶子
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'}