题解 | #实现new操作符#
实现new操作符
http://www.nowcoder.com/practice/71c2aff7cb6641099aa17d56157a91b9
// 目的是使用 new() 方法创建一个 className 类的实例化对象,代替 new className(参数) 的方法
const _new = function(className,...args) {
//if(typeof className !== "function") return;
let obj = {}; // 1 创建一个空对象
obj.__proto__ = className.prototype; // 2 解决空对象的原型链指向问题
className.apply(obj,args); // 3 使用构造式继承的方式将 className 类中的方法和属性都赋予obj对象,
return obj; // 4 得到一个实例化对象
}