2016-09-17 7 views
0

私は雷と呼ばれるキャンバスGUIハンドラを書いて、それがオブジェクト多くの機能、変数およびネストされたオブジェクトなど、renderがあり、このオブジェクトの内部JavaScriptオブジェクト埋葬巣

var lightning = {} 

handleClickEventとして格納されています、およびimage。この質問の目的のために、稲妻は、このように構成されています

var lightning = { 
    render : function(){ 
      // rendering script 
    }, 
    image : { 
      load : function(source) { 
       // Adds image to image storage 
       // Generates and returns image ID 
       // [[calls lightning.render()]] 
      } 
    } 
} 

私の質問は、私が名前を変更した場合、それが壊れないように、私は、グローバルスコープに入るとlightning.renderを呼び出すことなくlightning.renderを呼ぶのですか、です稲妻を知らせないでください...ライトニングをどう呼びますか?

ところで私は雷のselfを指すように画像オブジェクト内の変数を設定することもできますが、私はそれを行う方法がわからない雷でinit機能もあります。

はありがとう、

-Dylan

+0

'init.in 'のthis.image.self = thisはそれを行うべきです。 – Bergi

+0

'lightning.render'を参照するには何も問題ありません。適切なリファクタリングなしで名前を変更したい場合は、モジュールパターンを使用することができます(これはおそらく 'init'関数の代わりに使用します)。 – Bergi

答えて

0

答えは非常に簡単でした。

私が言及したように、雷を構築するために呼び出されるinit関数があります。 lightning.imageでは、私は変数、thatを作成し、そしてlightning.initで、私はこれは私がちょうどlightning.image.addthis.that.update()を呼び出すことができたましたthis.image.that = this

を設定します。

ご協力ありがとうございます。@Bergi

+0

' self'は使用しませんでした。多くのブラウザでウィンドウオブジェクト:) – AlgoRythm

関連する問題