次のJavaScriptコードがあります。クリックイベント/メモリリークの問題がある
var Foo = function() {
$('body').on('click', '.btn', this.update.bind(this));
};
Foo.prototype = (function() {
var update = function (e) {
console.log('update');
e.preventDefault();
};
return {
update: update
}
})();
new Foo();
new Foo();
new Foo();
私はFoo
コンストラクタの3つのインスタンスを作成しています。コンストラクタ内では、clickイベントをdom要素にアタッチしています。しかし、この方法では、new演算子を使用して3つのインスタンスを作成するため、clickイベントが3回追加されます。 3つのインスタンスを作成した後、そのDOM要素に1つのクリックイベントのみを添付するように、この作業を行うにはどうすればよいですか?
なぜ3つのインスタンスが必要ですか?あなたは何を達成しようとしていますか? – charlietfl
「クリックイベント/メモリリークに問題があります」とは何ですか?これはあなたがそれを3回インスタンス化するという事実に関して、あなたが期待していることは本当に不明です。あなたの投稿されたサンプルはあなたの実際のユースケースとは無関係です –