“this”在 JavaScript 类方法中未定义
2022-08-30 05:28:49
我是JavaScript的新手。就我真正完成的所有事情而言,它是新的,它调整了现有的代码并编写了一小段jQuery。
现在我正在尝试编写一个包含属性和方法的“类”,但是我在方法上遇到了麻烦。我的代码:
function Request(destination, stay_open) {
this.state = "ready";
this.xhr = null;
this.destination = destination;
this.stay_open = stay_open;
this.open = function(data) {
this.xhr = $.ajax({
url: destination,
success: this.handle_response,
error: this.handle_failure,
timeout: 100000000,
data: data,
dataType: 'json',
});
};
/* snip... */
}
Request.prototype.start = function() {
if( this.stay_open == true ) {
this.open({msg: 'listen'});
} else {
}
};
//all console.log's omitted
问题是,in 是未定义的,因此 if 语句的计算结果为 false。我在这里做错了什么?Request.prototype.start
this