使用预设参数编写回调函数

时间:2014-01-29 19:29:52

标签: javascript callback call apply

功能

var Q = {
   each:function(func){
     if(func && typeof func == 'function'){
        var len = this.length;
        for(i=0;i<len;i++){
          this[i];
       }
     }
   }
};

如何在上面的示例中编写一个回调函数,以便jQuery之类的函数可以在for loop

中执行操作

EX:

 _$('element').each(function(n,i){
       if(i==3){
         _$(this[i]).hide();
       }
 });

然后可以进一步发展的其他实例。我知道我可以通过设置

来编写回调函数

功能

var Q = {
   each:function(func){
     if(func && typeof func == 'function'){
        var len = this.length;
        for(i=0;i<len;i++){
          this[i];
          //func(); OR func.call(this,[i,n]);
       }
     }
   }
};

没有使用申请或打电话非常诚实地说文档现在有点难以理解。我相信我的呼叫功能写得正确。

1 个答案:

答案 0 :(得分:0)

当我继续练习时,我已经想出如何简单地写这个。

var Q = {
  each:function(func){
   if(func && typeof func == 'function'){
     var len = this.length;
     for(i=0;i<len;i++){
       func.call(this,i,this[i]);
     }
    }
   }
};

然后可以写成

 Q.each(function(i,x){
    if(x.id=="someRandomID" || i = 4){
      this.style.display="none";
    }
});

虽然我知道使用call或apply我们保留this运算符,但我无法给出调用正在进行的具体解释。