我怎么能绑定它,我在哪里绑定它?

时间:2017-02-20 20:58:51

标签: javascript html5 controls bind

我一直收到一个安慰错误:意外的令牌

我应该在哪里绑定才能使这个功能起作用?

        this.Map = new Button({ //button is a control so dont worry if it doesn't make sense
            text: "Map",
            press: function(event){
                pop.open(this._Map);
            }
        })

3 个答案:

答案 0 :(得分:0)

你必须将它绑定到你的按下功能,如下所示:

function onPress(event){
    pop.open(this._Map);
}

this.Map = new Button({
    text: "Map",
    press: onPress.bind(this)
})

或者你也可以使用这种方法:

var _this = this;
this.Map = new Button({ 
    text: "Map",
    press: function(event){
        pop.open(_this._Map);
    }
});

答案 1 :(得分:0)

当你使用new关键字时,解释器会创建一个新的空对象并使用绑定到它的新对象调用构造函数(此处为Button) 所以构造函数中的“this”关键字与this.map

的关键字不同

由于您没有明确调用Button(),因此您无法绑定它。 你可以这样做:

 var self = this;
 this.Map = new Button({ 
            text: "Map",
            press: function(event){
                pop.open(self._Map);
            }
        })

答案 2 :(得分:0)

您也可以使用ES6语法:

 press: (event) => {
     pop.open(this._Map);
 }

请在此处阅读arrow functions