我在学习面向对象的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