オブジェクト指向のJavascriptを学ぶのに少し問題があります。とという2つのクラスが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誰かが説明を提供し、内部からのプロパティにアクセスする方法を教えてもらえますCosmos.tickか?
編集:問題は、と関係があることがわかりました。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);
}
しかし、それを回避する最善の方法はまだわかりません。