我试图了解new
运营商。看看下面的函数:
var _new = function(fn) {
var obj = Object.create(fn.prototype);
fn.apply(obj);
obj.constructor = fn; // <--- EDIT: unnecessary
return obj;
};
可以这样应用:
var Test = function(){
this.foo = 1;
};
var instance = _new(Test);
当然,它可以很容易地扩展到任意数量的参数(我只是想保持简单)。
它似乎像new
关键字一样工作。那么有什么区别呢?new
运算符对对象还有什么作用?