2013-03-25 68 views
0

我想確保我正確理解Firebug。我打印出我的模型。在firebug的控制檯中,我看到屬性中有「myProperty」。但後來當我這樣做:console.log主幹模型,屬性屬性

if (_.has(model, "myProperty")) 

if (model.hasOwnProperty('myProperty')) 

兩個不返回結果。有沒有我不瞭解Firebug或JS?謝謝。

+1

考慮到我們正在談論JS,「hasOwnProeprty」確切的拼寫或只是一個錯字? – Tigran 2013-03-25 18:05:05

+0

@Tigran只是一個錯字 – Crystal 2013-03-25 18:08:43

+0

如果兩個都不成立,那麼在模型中測試''myProperty''。如果這是真的,那麼該屬性從原型鏈繼承(因爲'hasOwnProperty'爲'false')。如果這是'false',但仍然可以訪問某個'model.myProperty',那麼它可能是一個綁定而不是一個鍵。 – 2013-03-25 18:12:16

回答

0

如果myProperty是您給出模型的屬性,那麼它將存在於屬性對象中:model.attributes.myProperty。可以?

請注意,在the docs,如果myProperty爲空或未定義,則model.has(myProperty)將返回false

+0

我想我困惑的是爲什麼你必須model.attributes 。我認爲它只適用於model.something。但我是JS noob,所以我知道什麼。 – Crystal 2013-03-25 19:11:31

+0

@Crystal'屬性'只是您的模型中包含您定義的屬性的對象。這樣它們就與Backbone定義的屬性保持分離。 – 2013-03-25 19:40:03