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