Javascript TypeError:this.reload不是一个函数
我的代码:Javascript TypeError:this.reload不是一个函数,javascript,jquery,oop,Javascript,Jquery,Oop,我的代码: Box = (function() { function Box(options) { this.id = options.id; $('#box-reload-' + this.id).click(function() { this.reload(); }); } Box.prototype.reload = function() { alert('test'); }; return Box; })(); b =
Box = (function() {
function Box(options) {
this.id = options.id;
$('#box-reload-' + this.id).click(function() {
this.reload();
});
}
Box.prototype.reload = function() {
alert('test');
};
return Box;
})();
b = new Box({'id': '0'})
单击事件已正确注册,但单击“重新加载”按钮时,出现以下错误:
TypeError:this.reload不是一个函数
如何修复此错误?
此
在中单击
处理程序引用元素#框重载-…
,因此使用\u此
变量作为对正确范围的引用,例如
Box = (function() {
function Box(options) {
var _this = this;
this.id = options.id;
$('#box-reload-' + this.id).click(function() {
_this.reload();
});
}
此
在单击中
处理程序引用元素#box reload-…
,因此使用\u此
变量作为对正确范围的引用,例如
Box = (function() {
function Box(options) {
var _this = this;
this.id = options.id;
$('#box-reload-' + this.id).click(function() {
_this.reload();
});
}
因为这是元素的范围,而不是函数。对控制台的简单测试将告诉您 console.log(this) 在外部定义一个变量来保存范围
function Box(options) {
var that = this;
this.id = options.id;
$('#box-reload-' + this.id).click(function() {
that.reload();
});
}
因为这是元素的范围,而不是函数。对控制台的简单测试将告诉您 console.log(this) 在外部定义一个变量来保存范围
function Box(options) {
var that = this;
this.id = options.id;
$('#box-reload-' + this.id).click(function() {
that.reload();
});
}
作品谢谢你的解释!作品谢谢你的解释!