Javascriptでオブジェクト指向のコーディングを行う方法について何かが私を悩ませています。追加の変数なかれ...私には過度に思えたの作成javascriptコールバック内から「this」を参照する
MyClass.prototype.doSomething = function(obj, callback) {
var me = this; // ugh
obj.loadSomething(function(err, result) {
me.data = result; // ugh
callback(null, me);
});
}
まず第一に、:コールバックがあるとき、私は頻繁に、もともとこのような何かをするために私をリードされ、関数を呼び出したオブジェクトを参照します。さらに、 "me"変数をコールバックに戻すことで問題(循環参照?GCdオブジェクトではない?)を引き起こす可能性があるのだろうかと思う。
これについてもっと良い方法がありますか?このアプローチは悪いですか?
'this'は変数ではありません。 「this」を閉じることはできません。アプローチは問題ありません。 –
「邪悪」と「過度」についてのFUDは私を煩わせる。ボイラープレートが気に入らないのは大丈夫ですが、なぜそれに想像上の問題が生じるのでしょうか?内部関数は変更されないため、使用するアプローチに関係なく、同じ囲みデータへの参照を保持する必要があります。必要最小限のデータへの参照のみを維持するかどうかは、通訳が心配すべきことです。 – millimoose
@millimooseよく言った - 私は最後の行を要約する方法を思いつきませんでした。 (そして、私はまだ "悪"に陥っていますが、 "悪い"ではありませんが、非常に客観的な方法ではひどくひどいです - 新しい機能( "..") "を使って"問題を避ける "コード) –