6.10-Once-闭包和apply的应用

function once(fn){
     var flag = true;
     return function(){
     if(flag){
          fn.apply(this,arguments);
          flag = false;
     }
}}

记录更新一下codewars的题目,原题目要求是,输入一个函数作为参数,返回这个函数的一个一次使用函数,只能被调用一次。然后再调用就什么都不做或者返回undefined

 

基础不扎实,这里多记录一点基础知识。

 

apply,call的使用就是改变函数内部的this指针,达到改变作用上下文的作用。

这两者的区别,只有参数,call的使用有明确的参数,apply的使用更弹性,可以使用argments对象。

 

另外使用了flag的闭包,勉强能算吧。

以上理解有误请指出,谢谢。

posted @ 2015-06-10 17:22  cosine  阅读(67)  评论(0)    收藏  举报