【发布时间】:2012-10-01 10:57:56
【问题描述】:
我在 Backbone 中看到过这个关于继承的问题: Backbone.js view inheritance。有用但不能回答我的问题。
我遇到的问题是这样的:
假设我有一个班级Panel(本例中为model);
var Panel = Backbone.Model.extend({
defaults : {
name : 'my-panel'
}
});
然后是AdvancedPanel;
var AdvancedPanel = Panel.extend({
defaults : {
label : 'Click to edit'
}
});
以下不起作用:
var advancedPanel = new AdvancedPanel();
alert(advancedPanel.get('name')); // Undefined :(
这里的JSFiddle:http://jsfiddle.net/hWmnb/
我想我可以看到我可以通过一些自定义的 extend 函数自己实现这一点,该函数创建原型的深层副本,但这似乎是人们可能希望从 Backbone 继承中获得的常见事情,有没有标准的做法?
【问题讨论】:
-
我尝试了这里的建议:stackoverflow.com/questions/6549149/… 在这个小提琴中:jsfiddle.net/vesteraas/EXbnb
-
啊,谢谢,我没有看到这个答案/问题,但现在我看到它是一个链接的。这很有用,虽然还不是很干净……我觉得既然“默认”是标准的 Backbone 模型属性,它应该由扩展来处理。我猜不是这样。还有其他建议吗?
标签: javascript inheritance backbone.js