underscore的Function之once

 

   once

 

   _.once(function)

 

  •  创建一个只能被调用一次的函数。重复的调用改进的方法也没有效果,还是返回第一次执行的结果
  •  有助于初始化类型的方法,代替设置boolean的标志位,然后对它进行检测

 

   源码

 

_.once = function(func){

     //创建一个初始的标志位ran,默认是false
     var ran = false,

     //memo是一个返回值
           memo;

      return function(){
 
          //判断标志位,如果不是第一次,直接return memo
           if(ran){
               return memo;
           }

           //第一次置一下标志位
           ran = true;

           //第一次执行的时候置一下
           memo = func.apply(this,arguments);
 
           //对func置null
           func = null;

           //把memo返回
           return memo;

      };

}

 

你可能感兴趣的:(function,underscore,once)