2012-09-12 200 views

回答

9

因爲您已經用普通對象完全替換了f的原始對象prototype。這是原來的prototype對象,通過.constructor屬性舉行的參考f

一個對象的構造使用對象文本語法將是Object構造函數創建。

把它找回來,你需要手動把它放在那裏。

f = function() {}; 
f.prototype = {}; 
f.prototype.constructor = f; 
thing = new f; 

這會影響新原型對象的原型鏈中的.constructor屬性。

如果您刪除屬性,你會再次得到Object

delete f.prototype.constructor; 

console.log(thing.constructor); // Object 
相關問題