我是 BackboneJS 的新手,正在看Smashing Magazine上的这篇文章,我想知道扩展函数何时/为什么应该返回模型/集合/某些东西。
var Hotel = Backbone.Model.extend({
defaults: {
"availableRooms": ["a"],
"rooms": [
{
"name": "a",
"size": 1200,
"bed": "queen"
},
{
"name": "b",
"size": 900,
"bed": "twin"
},
{
"name": "c",
"size": 1100,
"bed": "twin"
}
],
// how come this function does not return
getRooms: function() {
var rooms = $.extend(true, {}, this.get("rooms")),
newRooms = {};
// transform rooms from an array back into an object
_.each(rooms, function(room) {
newRooms[room.name] = {
"size": room.size,
"bed": room.bed
}
});
},
// but this one does
getRoomsByBed: function(bed) {
return _.where(this.getRooms(), { "bed": bed });
}
}
});
请善待。我不是想撕开别人的代码——我只是想了解 Backbone 是如何工作的。:-)
谢谢