首先这里是一个构造函数:
function Fun(age,name){
this.age=age
this.name=name
}
这个是创建的函数:
function create(fn,...args){
1.创建了一个空对象
var obj = {}
2.将空对象的原型指向构造函数的对象
Object.setPrototypeOf(obj,fn.prototype)
3.将空对象作为构造函数的上下文(改变this指向)
var result = fn.apply(obj,args)
4.对构造函数有返回值的处理判断
return result instanceof Object ? result : obj
}
在这里调用:
create(Fun,18,'张三')
标签:obj,name,age,操作符,result,原理,new,fn,构造函数 From: https://www.cnblogs.com/muchenli/p/17289511.html