0
Q
骨幹系列不唯一?
A
回答
3
我猜你的問題是你defaults
在Player
:
var Player = Backbone.Model.extend({
defaults: {
id: 0,
name: '',
coins: new Coins()
},
//...
});
這defaults
將是淺複製到新Player
S左右,他們都會最終完全一樣coins: new Coins()
共享。每當defaults
包含任何可變數據(即數組,對象文字等)時,都會發生類似的情況。所有這些:
this.Taylor.get("coins")
this.Sugar.get("coins")
this.Darlene.get("coins")
this.Cody.get("coins")
將最終成爲完全相同的對象。該fine manual有這樣一段話:
默認
model.defaults or model.defaults()
的默認哈希(或功能)可用於指定模型中的默認屬性。在創建模型的實例時,任何未指定的屬性都將設置爲其默認值。
請記住,在JavaScript中,對象是通過引用傳遞的,所以如果包含一個對象作爲默認值,它將在所有實例之間共享。
請注意,在最後的小警告。如果使用功能defaults
:
var Player = Backbone.Model.extend({
defaults: function() {
return {
id: 0,
name: '',
coins: new Coins()
};
},
//...
});
那麼你應該得到不同'coins'
每個Player
。另外,您也可以手動在您的initialize
設置'coins'
:
var Player = Backbone.Model.extend({
//...
initialize: function() {
this.set('coins', new Coins);
// Or only set it if it isn't there if that makes sense...
},
//...
});
相關問題
- 1. 骨幹系列
- 2. 骨幹系列將不會填充
- 3. 骨幹關係不更新
- 4. 骨幹一對多關係芯片
- 5. 不能骨幹
- 6. 與Django的骨幹關係
- 7. 骨幹關係屬於
- 8. View +骨幹/骨幹關係應用中的子視圖
- 9. 骨幹模型在初始化骨幹關係後被重寫
- 10. 骨幹JS與骨幹關係的嵌套模型
- 11. RequireJS和骨幹關係的狀態和/或骨幹關係的替代?
- 12. 骨幹不加載
- 13. 骨幹關係 - 不能實例化一個以上的,,,
- 14. Ajax隊列骨幹js
- 15. 骨幹JS模型響應陣列骨幹收集
- 16. 骨幹
- 17. 骨幹
- 18. 骨幹
- 19. 骨幹
- 20. 骨幹
- 21. 骨幹
- 22. 骨幹
- 23. 骨幹
- 24. 骨幹
- 25. 使用唯一模型URL獲取骨幹網集合子集
- 26. 與骨幹stickit骨幹驗證 - 當一個人改變
- 27. 骨幹路由和查看關係
- 28. 骨幹關係兩款車型
- 29. 骨幹關係hasmany最佳實踐
- 30. 嵌套模型上的骨幹關係
非常感謝您!我不知道在Defaults中通過引用完成的對象....對不起,我修改了一些過去的項目..... –