分析这段代码我不确定实际发生了什么。我继续使用JS进入这个陷阱,尤其是回调。以下是从骨干文档中获取的示例。
//creates a new constructor function with a promptColor function as an attribute.
var Sidebar = Backbone.Model.extend({
promptColor: function() {
var cssColor = prompt("Please enter a CSS color:");
this.set({color: cssColor});
}
});
// creates a property on the global window object called sidebar
window.sidebar = new Sidebar;
// .on is an event listener and passed a callback function taking the parameters of model and color. Here is my confusion, what does it do with the model parameter?
sidebar.on('change:color', function(model, color) {
$('#sidebar').css({background: color});
});
sidebar.set({color: 'white'});
sidebar.promptColor();
我的主要问题是它对模型参数有什么作用?它实际上对模型参数做了什么?
谢谢!
答案 0 :(得分:1)
在您的特定情况下,模型参数没有实际用途,因为它们是更改事件和模型之间的一对一关系。
然而,有时候并非如此。例如,假设您有一个主干模型集合。您可以将“更改”事件侦听器附加到集合,每次集合中的任何模型更改时都会调用该集合。在这种情况下,了解哪个模型产生了“变化”事件是有帮助的。