这是我的 javascript 代码它的目标只是为了教育。我正在学习 js OOP 和 jquery
function App() {
this.deviceReadyDeferred = new $.Deferred();
this.init = function() {
console.log ("Run");
$.when(this.deviceReadyDeferred).then(this.run);
document.addEventListener("click", this.onDeviceReady, false);
},
// NB: onDeviceReady non ha parametri evento
this.onDeviceReady = function() {
console.log("deviceReady");
this.deviceReadyDeferred.resolve();
},
this.run = function() {
console.log("main");
}
}
app = new App();
app.init();
当我点击时,我收到
类型错误:this.deviceReadyDeferred 未定义
为什么?
- 我没有收到未定义的“$”,因此 jQuery 运行良好。
- 我在 Win 7 上的 FF 19.0.2 上运行 jQuery 1.9.1
如何使用 deferred 到 javascript 对象中?如何初始化和重用它?
编辑:
此代码正在运行。所有的问题都出在我对this
. 我是使用 javascript 的 OOP 新手。
function App() {
var self = this;
this.deviceReadyDeferred = new $.Deferred();
this.init = function() {
console.log ("Run");
$.when(self.deviceReadyDeferred).then(self.run);
$(document).on("click", self.onClick);
},
this.onClick = function() {
console.log("deviceReady");
self.deviceReadyDeferred.resolve();
},
this.run = function() {
console.log("main");
}
}
app = new App();
app.init();