js 实现new
Posted 想学JS的前端
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js 实现new相关的知识,希望对你有一定的参考价值。
关于new的原理可参考:https://www.cnblogs.com/guanghe/p/11356347.html
下面是实现代码:
function 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;
}
以上是关于js 实现new的主要内容,如果未能解决你的问题,请参考以下文章
RuntimeError: An attempt has been made to start a new process before the current process has...(代码片段