JS/JQueryと匿名関数とクロージャについて学習しています。私はこのような例を見てきました:Jqueryコールバックとして使用すると、匿名関数と名前付き関数のメモリオーバーヘッド
$('.button').click(function(){
/* Animations */
/* Other Stuff */
});
ボタンが複数ある場合、それは効率的ではありませんか?匿名関数のプロトタイプの類似のコピーをメモリに単に格納するだけではないのですか? (は私の専門用語を修正)それがこれを行うために良いとは限りません。
function handleClick($obj){
/* Animations */
/* Other Stuff */
}
//multiple anon functions again, but they all reference ONE handleClick function
('.button').click((function($obj){
return function(){handleClick($obj)};
})($(this));
あなたが書いた最初のバージョンが実際にハンドラを "クローン"したとは思わない...すべての要素が同じ参照を共有する必要があります! –
JQueryはスマートなので、ハンドラは1つしか付けられません。 – Alex
私はそれがjQueryの問題ではないと思いますが、単一の関数参照を渡すので、単一の参照が使用されます。 –