我想確保我正確理解Firebug。我打印出我的模型。在firebug的控制檯中,我看到屬性中有「myProperty」。但後來當我這樣做:console.log主幹模型,屬性屬性
if (_.has(model, "myProperty"))
或
if (model.hasOwnProperty('myProperty'))
兩個不返回結果。有沒有我不瞭解Firebug或JS?謝謝。
我想確保我正確理解Firebug。我打印出我的模型。在firebug的控制檯中,我看到屬性中有「myProperty」。但後來當我這樣做:console.log主幹模型,屬性屬性
if (_.has(model, "myProperty"))
或
if (model.hasOwnProperty('myProperty'))
兩個不返回結果。有沒有我不瞭解Firebug或JS?謝謝。
如果myProperty
是您給出模型的屬性,那麼它將存在於屬性對象中:model.attributes.myProperty
。可以?
請注意,在the docs,如果myProperty
爲空或未定義,則model.has(myProperty)
將返回false
。
我想我困惑的是爲什麼你必須model.attributes 。我認爲它只適用於model.something。但我是JS noob,所以我知道什麼。 – Crystal 2013-03-25 19:11:31
@Crystal'屬性'只是您的模型中包含您定義的屬性的對象。這樣它們就與Backbone定義的屬性保持分離。 – 2013-03-25 19:40:03
考慮到我們正在談論JS,「hasOwnProeprty」確切的拼寫或只是一個錯字? – Tigran 2013-03-25 18:05:05
@Tigran只是一個錯字 – Crystal 2013-03-25 18:08:43
如果兩個都不成立,那麼在模型中測試''myProperty''。如果這是真的,那麼該屬性從原型鏈繼承(因爲'hasOwnProperty'爲'false')。如果這是'false',但仍然可以訪問某個'model.myProperty',那麼它可能是一個綁定而不是一個鍵。 – 2013-03-25 18:12:16