我試圖理解new
操作符。看一看下面的函數:JavaScript中的「新」操作符
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
運算符還有什麼對象?
這有幫助嗎? http://stackoverflow.com/questions/4166616/understanding-the-difference-between-object-create-and-new-somefunction-in-j –
'構造函數'實際上是'fn.prototype'的一個屬性,而不是實例本身。 –
@FelixKling哦,真的嗎?我不知道。這使得代碼更簡單。 – freakish