js 实现new
2021-03-22 08:26
标签:父类 object 关于 eof || var return func color 关于new的原理可参考:https://www.cnblogs.com/guanghe/p/11356347.html 下面是实现代码: js 实现new 标签:父类 object 关于 eof || var return func color 原文地址:https://www.cnblogs.com/AwenJS/p/12703644.htmlfunction New(fn){ //fn是父类
var res = {};
if(fn.prototype !== null) {
res.__proto__=fn.prototype;
}
// 将传入构造函数的参数,在res上下文中执行一遍
var ret = fn.apply(res,Array.prototype.slice.call(arguments,1));
// 如果构造函数返回一个对象,则直接返回这个对象
if((typeof ret === ‘object‘ || typeof ret === ‘function‘) && ret !== null){
return ret;
}
return res;
}