将数组 arr 中的元素作为调用函数 fn 的参数

输入

function (greeting, name, punctuation) {return greeting + ', ' + name + (punctuation || '!');}, ['Hello', 'Ellie', '!']

输出

Hello, Ellie!

代码

function argsAsArray(fn, arr) {

  return fn.apply(this,arr);

}

要点

调用函数可以使用call或者apply这两个方法,区别在于call需要将传递给函数的参数明确写出来,是多少参数就需要写多少参数。而apply则将传递给函数的参数放入一个数组中,传入参数数组即可。

这里的this指向window,但是function里没有用到this,也就是说function里没有会根据作用域不同而需要指定的this的值,所以这里apply的第一个参数放什么都可以,null也行.

 
posted @ 2017-12-27 14:05  是两页啊  阅读(1199)  评论(0编辑  收藏  举报