在事件'上的Backbone.js;s回调函数

在事件'上的Backbone.js;s回调函数,backbone.js,backbone-events,Backbone.js,Backbone Events,我正在尝试理解Backbone.js,我有一个与以下示例相关的问题- var Sidebar = Backbone.Model.extend({ promptColor: function() { var cssColor = prompt("Please enter a CSS color:"); this.set({color: cssColor}); } }); window.sidebar = new Sidebar; sidebar.on('change:c

我正在尝试理解Backbone.js,我有一个与以下示例相关的问题-

var Sidebar = Backbone.Model.extend({
  promptColor: function() {
    var cssColor = prompt("Please enter a CSS color:");
    this.set({color: cssColor});
  }
});

window.sidebar = new Sidebar;

sidebar.on('change:color', function(model, color) {
  $('#sidebar').css({background: color});
});

sidebar.set({color: 'white'});

sidebar.promptColor();
on事件的语法为-onobject.on(事件,回调,[context])。在上面的回调函数示例中,我们为什么要传递模型变量

谢谢, prat.

主干网传递3个回调参数,您可以(可选)使用这些参数:

您的代码使用其中的前2个。颜色更改时,回调将获取更改的模型和新颜色:

sidebar.on('change:color', function(model, color) {        
    $('#sidebar').css({background: color});
});
这也可以通过将模型设置为回调的
This
上下文来实现:

sidebar.on('change:color', function() {
    $('#sidebar').css({background: this.get('color')});
}, sidebar);
请参见此处的两个示例:

主干传递3个回调参数,您可以(可选)使用这些参数:

您的代码使用其中的前2个。颜色更改时,回调将获取更改的模型和新颜色:

sidebar.on('change:color', function(model, color) {        
    $('#sidebar').css({background: color});
});
这也可以通过将模型设置为回调的
This
上下文来实现:

sidebar.on('change:color', function() {
    $('#sidebar').css({background: this.get('color')});
}, sidebar);
请参见此处的两个示例: