我在學習面向對象的Javascript時遇到了一些麻煩。我有兩個類稱爲Cosmos
和Background
,Cosmos
看起來是這樣的:從對象本身訪問對象屬性
// js/Cosmos.js
function Cosmos() {
this.background = new Background();
// Fire game loop
this.ticker = setInterval(this.tick, 1000/60);
}
// Main game loop
Cosmos.prototype.tick = function() {
console.log(this.background);
}
當主遊戲循環蜱,我在控制檯中看到undefined
。我不太明白這一點,因爲this.background
是Cosmos
類的一個屬性,所以它應該可以通過Cosmos
類中定義的方法訪問,否?
如果我回到我的index.html
網頁的腳本標記,並將其改成這樣:
// Lift off
var cosmos = new Cosmos();
console.log(cosmos.background);
它的工作原理和Background
對象被記錄到控制檯。任何人都可以提供解釋並告訴我如何從Cosmos.tick
內訪問Cosmos
的屬性?
編輯:原來,問題是事做setInterval()
,因爲如果我這樣做正確的對象登錄到控制檯:
function Cosmos() {
this.background = new Background();
// Fire game loop
//this.ticker = setInterval(this.tick, 1000/60);
this.tick();
}
// Main game loop
Cosmos.prototype.tick = function() {
console.log(this.background);
}
仍然不知道它周圍的最好辦法,但。
的[這些答案]無(http://stackoverflow.com/search?q=[javascript]Accessing+object+properties+from+object+itself)有用嗎? – Teemu 2013-02-11 05:38:33