以前对与apply()还有call()一直处于一种我知道这是干什么,但是不知道怎么使用的情况,今天看别人的博客的时候,看到了一点这类知识,感觉有点感觉,现在把新的心得写下来。

A.apply(B,[arr]);    

A.call(B,str1,str2...);    

这两个的不同之处就在于后面的那个参数类型,apply是数组,call是一个一个的参数。总体意思就是用A的方法替换B 的方法。

我以前也知道是这样的知识点,但是不知道怎么用,现在看了一个例子感觉很有启发性。

 

// add()函数,将参数相加求和;

function add(a,b,c){

  return a + b + c;

}

add(1,2,3)    //结果为6;

但是若是要求数组的和呢?这个函数是没办法求数组和的,只能用来求一个一个参数的和;现在这种情况就可以使用apply()方法了;

var arr = [1,2,3];

add.apply(null,arr);    // 结果为6

在es6中同样也有方法,利用不定参可以直接求和;

add(...arr);      //结果为6    

 

posted on 2017-09-26 11:36  liumcb  阅读(106)  评论(0编辑  收藏  举报