私はサードパーティ製のフラッシュオブジェクトを用意しています。これらのオブジェクトは、提供しているJavaScript APIを通じて操作できます。私はこのオブジェクトのイベントを聞いて試してみると、オブジェクトの中でイベントを発生させ、イベントをさらに泡立たせます。私はEXT Jsを使用していますが、ここでは重要ではないと思います。addEventListenerとthisのスコープ
サンプルコード
this.chart.addEventListener('create', function() {
this.fireEvent('created');
}, false)
私の問題は、匿名関数内の「これは」私は上のイベントを発生するイベントではなく、私のオブジェクトを解雇したオブジェクトを参照すること。あります
さらに別の範囲の問題です。助けを前にありがとう。
私は 'var self = this;'が好きです。関数を作成して、それをパラメータとして渡している間に 'this'を渡すのはちょっと戸惑っているようです.- –
@Andy:そうですね、小さな実行コンテキストにコードが存在するとしばしばそうします。しかし、上記は、より広範なシナリオで機能する標準的なアプローチです。'self'識別子の範囲はクロージャーにのみ制限されます。イベントが発生する前に後続コードがその値を変更する危険はありません。これは 'var self = this;'アプローチには当てはまりません。 – AnthonyWJones