2013-07-21 59 views
0

我在JavaScript中創建一個對象:JavaScript對象的創建和它的原型

var object = {value1 : "value1", value2 : "value2"}; 

如果我現在就來試試,如果我添加屬性我得到的數「的Object.prototype」我得到的結果0的內容正確的結果。那麼我是否認爲'object.prototype'實際上是空的?

謝謝!

+0

在你的例子中,我發現'object.prototype'是'undefined',你不能計算'undefined'的內容。有一個'object.constructor'(在Chrome中是'function Object(){[native code]}',你可以檢查'Object.prototype')。 – nnnnnn

+0

謝謝,你能告訴我你做了什麼嗎? – user1360809

+0

我剛剛將你的代碼行粘貼到Chrome的控制檯中,然後我評估了'object.prototype','object.constructor'和'Object.prototype'。請注意,您可以將屬性添加到Object.prototype,但是您不會這樣做。 – nnnnnn

回答

0

在Javascript中,默認情況下只有 「函數對象」 有一個原型屬性..

例如,沒有下面的默認有一個原型屬性 -

var a = new Object(); 
var b = {}; 
var a = new Array(); 
var b = []; 

但是,

var a = function() {}; 

已具雛形屬性..和默認 -

a.prototype is {constructor : this} 
0

如果你想通過你分配給你的對象的所有屬性進行迭代,你可以用for..in循環做到這一點:

for (var prop in object){ 
    if (object.hasOwnProperty(prop)){ 
     var propValue = object[prop]; 
     // ... 
    } 
} 

如果你需要計算的屬性,你可以每次迭代增加一個計數器。