Javascript 如何理解主干语法

Javascript 如何理解主干语法,javascript,css,backbone.js,Javascript,Css,Backbone.js,我正在学习backbone.js。我从backbone.js文档中找到了以下代码 //cretaing class name as Sidebar with extends Backbone.Model class var Sidebar = Backbone.Model.extend({ promptColor:function() { var cssColor = prompt("Please enter a C

我正在学习
backbone.js
。我从backbone.js文档中找到了以下代码

 //cretaing class name as Sidebar with extends Backbone.Model class  
 var Sidebar = Backbone.Model.extend({
                promptColor:function() {
                    var cssColor = prompt("Please enter a CSS color:");
                    this.set({color1: cssColor});
                }
        });
  //cretaing object for Sidebar class
        var sidebarObject = new Sidebar();
  //following statement not understand
        sidebarObject.on("change:color1", function(model, color23) {
            $('#body1').css({background: color23})
        });
我的理解是:

每当属性
color1
将自动更改时,model('Slidebar')触发
sidebarObject.on()

我不明白的是:

  • 我们正在将两个参数名为
    model、color23
    传递给
    sidebarObject.on()
    的第二个参数。我对那些争论一无所知
  • 2.根据我的理解,在我的示例中,模型是侧边栏,对吗

    有人能帮我吗


    谢谢。

    是的,您的第二个假设是正确的,在上面的示例中,侧栏是模型

    有两个参数被传递到回调函数:

  • 事件最初发生的模型
  • 与事件一起传递的值
  • 请注意,
    sidebarObject
    只侦听“颜色”更改事件。当您更改模型的特定属性时,将生成此类事件:

    this.set({color1: cssColor});
    
    现在,如果将侦听器更改为:

    sidebarObject.on("change:taste", function(model, color23) {
        $('#body1').css({background: color23})
    });
    
    this.set({color:cssColor})时,它将不再被激发是因为它侦听“味道”更改:

    this.set({taste: 'good'});
    
    我已将上述示例拆分为一把小提琴,以便您可以使用它:

    如果你是新手,这整个网站都值得一看


    我希望现在它更清楚。

    根据您的观点
    1。事件最初发生的模型
    ,我可以将
    侧栏
    作为参数传递,而不是
    模型
    。如果它使用更多属性(如
    侧栏对象)on(“更改:口味更改:颜色1”,函数),也可以用简单的示例解释我(model,color23,color24){$('#body1').css({background:color23});alert(“color24”);});
    您在回调函数中看到的那些参数是通过主干传递的,您可以重命名它们,但主干仍将在第一位传递模型,在第二位传递事件属性。是的,主干可以侦听多个属性更改事件。我建议您绕着那个小提琴玩。我还修改了它以表示侦听关于多属性:我发布的代码在
    .html
    文件中运行良好。这些代码与我在单独的
    .js
    文件中放置的代码相同。然后将该文件导入到我的
    .html
    文件中。它不起作用。为什么我可以添加任何额外的代码。我不知道您的环境,但我确信问题与此无关不要用脊梁骨。