2011-08-27 57 views
4

用代碼更好地解釋,有沒有解決此錯誤的方法?我試圖模擬一個命名空間。使用JavaScript對象時未定義錯誤

window.SomeNamespace = { 
     Notification: Backbone.Model.extend(), 
     Notifications: Backbone.Collection.extend({ 
      model: SomeNamespace.Notification //error here. SomeNamespace is not defined 
     }), 
}; 
+0

當你定義對象時,你不能訪問自己。它還不存在。 –

+0

在你的第二行'Backbone.Model.extend()'應該可能是'new Backbone.Model' –

回答

5

window.SomeNamespace因此全球SomeNamespace將不被限定,直到=的右側已被執行。所以你必須把它分成兩部分。

window.SomeNamespace = { 
     Notification: Backbone.Model.extend(), 
}; 


window.SomeNamespace.Notifications = Backbone.Collection.extend({ 
    model: SomeNamespace.Notification 
}); 

當然你也可以通過使用extend()方法做一個更好的方式。

+0

什麼是擴展方法? –

+0

我認爲Backbone.Collection.extend是通用的,但顯然它不是..所以我用的方式很好。 – ThiefMaster

相關問題