lxy061654

 

先来个each()函数:

var each=function(array,fn){

  for(var index in array){

    //遍历array,fn这个函数未确定

  }

}

*假如我们需要定义一个形如each(array,fn)的函数,这个函数可以自动迭代array数级元素,而fn函数则负责对数组元素进行处理--此时需要在each函数中调用fn函数,但目前fn函数并未确定,因此无法采用直接调用的方式来调用fn函数,这时就需要用:

1 call()方法调用函数;

1.1 完善each,代码如下

var each=function(array,fn){

  for(var index in array){

      fn.call(null,index,array[index]);

  }

}

each([14,20,3],function(index,ele){

  document.write("第"+index+"个元素是:"+ele+"<br />");

});

1.2 语法解析:函数引用.call(调用者,参数1,参数2....);

2 以apply()方法调用函数与call()方法类似,区别在于:

>>通过call()调用函数时,必须在括号中详细地列出每个参数

>>通过apply()动态地调用参数时,可以在括号中以arguments来代表所有参数

代码如下:

var myfun=function(a,b){

  alert("a的值是:"+a+"\nb的值是:"+b);

}

myfun.call(window,12,23);

var example=function(num1,num2){

  myfun.apply(this.arguments);

}

example=(20,40);

myfun.apply(window,[12,23]);

相关文章:

  • 2021-05-15
  • 2021-06-23
  • 2022-01-12
  • 2021-12-03
  • 2021-11-09
  • 2021-12-12
  • 2021-09-12
  • 2021-09-14
猜你喜欢
  • 2021-10-13
  • 2021-11-10
  • 2021-06-28
  • 2021-07-24
  • 2021-09-27
  • 2021-11-07
  • 2021-04-20
相关资源
相似解决方案