Javascript 我怎样才能把它绑起来?我要把它绑在哪里?

Javascript 我怎样才能把它绑起来?我要把它绑在哪里?,javascript,html,controls,bind,Javascript,Html,Controls,Bind,我一直收到一个consoel错误:这是一个意外的标记 我应该绑定到哪里才能使此函数工作 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); }

我一直收到一个consoel错误:这是一个意外的标记

我应该绑定到哪里才能使此函数工作

        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);
            }
        })

您必须将其绑定到press函数中,如下所示:

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);
    }
});

当您使用
new
关键字时,解释器将创建一个新的空对象并调用构造函数(此处按钮),并将该新对象绑定到它 因此,构造函数中的“
this
”关键字与
this.map的this不同

由于您没有显式地调用
Button()
,因此无法绑定它。 您可以执行以下操作:

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

您还可以使用ES6语法:

 press: (event) => {
     pop.open(this._Map);
 }
阅读这里关于