Subscribed unsubscribe Subscribe Subscribe

無名関数と無意識クロージャでやるミス

これを見てほしい

var tooLongNameObject = {};

(function($){
  var tooLargeObject = hoge();
  if(isFoo(tooLargeObject)){
    $.someMethod = function(){
      /*..snip..*/
      return true;
    };
  }
})(tooLongNameObject);

tooLargeObjectは無名関数内で宣言されてるので無名関数が終了し次第消えるはず…とおもいきやtooLongNameObject.someMethod()のクロージャとなってるので残ってしまう。
なんか動作重いなとか思ったらこのあたり気をつけたほうがいいかも。

(function($){
  $.fn.extend({
    hoge : function(){}
  });
})(jQuery);

なんてやってる人は特にね。