「this」というキーワードが次の文脈でどのように機能するかについて質問があります。 Here'sフェイザーフレームワークとコード次のようになります(私は単にあなたのためにそれを一緒に合併)とtutorial:作成機能で「this」はこのコンテキストでどのように機能していますか?
var game = new Phaser.Game(400, 490);
game.state.add('main', mainState);
game.state.start('main');
var mainState = {
preload: function() {},
create: function() {
this.bird = game.add.sprite(100, 245, 'bird');
},
update: function() {}
};
「この」があります。私はこれが何をするのか理解していると思うが、この例は私が間違っていることを証明した。 mainState
を指しています(いくつかの情報:3番目の行を開始するためにmainState
が呼び出されるとすぐに作成機能が開始されます)。
私は(mainstate.bird経由)mainState
対象外の鳥にアクセスできますが、なぜそれがゲームオブジェクトの外に次のようなプロトタイプ関数を定義することが可能ではないでしょうか?
mainState.prototype.myFunction() {}
これはエラーとなり、説明できません。
おそらく、あなたは少なくとも 'mainState.prototype ...'を書く必要があるからです。私は、JavaScriptの "クラス"でプロトタイプを使うことをお勧めします。 – Guybrush
@Guybrush私は 'mainState'を意味しました。それを編集しました - ありがとう。 – Faizy
こちらをご覧ください:http://stackoverflow.com/questions/43246989/the-value-of-this-inside-a-function/43247403#43247403だからおそらく重複した質問です。 – Guybrush