0

我在主干中创建了模型和视图。它给了我一个语法错误,因为“SyntaxError:函数语句需要一个名称->changeClg:函数(高度,宽度){”

selectTable = Backbone.View.extend({
    render: function() {
        var height= 50;
        var width= 56;
        if (true) {
            changeClg(height,width);
        }
        changeClg: function (height, width) {
            console.log("inside changeClg");
        }
        var selector = this.$el.find("select.clg-selection");
        selector.html("<option></option>");
    }
});

但是当我使用不同的语法在视图之外声明 changeClg 函数时,它正在工作,如下所示

selectTable = Backbone.View.extend({
    render: function() {
        var height= 50;
        var width= 56;
        if (true) {
          changeClg(height,width);
        }
        var selector = this.$el.find("select.clg-selection");
        selector.html("<option></option>");
    }
});
changeClg = function (height, width) {
    console.log("inside changeClg");
    this.$el.find(".clg-dors")[0];
}

实际上我需要使用 el 对象和其他一些对象,所以我必须转到第一个选项,但它给了我错误。

我只是调用“changeClg”函数,但它给了我语法错误。

我想知道这两个函数声明有什么区别?

谁能告诉我可能是什么问题?

4

2 回答 2

1

我认为changeClg: function (height, width)不是正确的语法。您应该改用 `var changeClg = function (height, width){...}。

您面临的问题是因为您没有使用 a: 函数创建对象是错误的,即 c = {a: function{...}} 是正确的,您可以使用 ca() 但这 a: function{...}是错误的,而是 var a = function {...}正确的方法,您可以直接使用 a()

于 2013-10-24T13:40:42.717 回答
0

它正在工作,我们应该使用“this”关键字来调用对象属性,并且我在渲染属性之后创建了“changeClg”函数,如下所示

selectTable = Backbone.View.extend({
    render: function() {
    var height= 50;
    var width= 56;
        if (true) {
          this.changeClg(chartHeight);
        }
      var selector = this.$el.find("select.clg-selection");
      selector.html("<option></option>");
    },
    changeClg: function (height, width) {
        console.log("inside changeClg");
    }
});

谢谢

于 2013-10-23T09:35:30.620 回答