[b]apply方法
[/b]apply是所有函数都有的方法.它的签名如下:
func.apply(thisValue, [arg1, arg2, ...])
如果不考虑thisValue的影响,上面的调用等同于:
func(arg1, arg2, ...)
也就是说,apply允许我们将一个数组"解开"成为一个个的参数再传递给调用函数.让我们分别看看apply使用中的三个技巧.
[b]技巧1: 将一个数组传递给一个不接受数组作为参数的函数[/b]
JavaScript中没有返回一个数组中最大值的函数.但是,有一个函数Math.max可以返回任意多个数值类型的参数中的最大值.再配合apply,我们可以实现我们的目的:
[url=http://cc.c-yark.com/browse.php?u=2d1c9ded505b6Oi8vdW5kZXJzY29yZWpzLm9yZy8%3D&b=5#compact]_.compact[/url]函数会移除数组中的所有假值,包括缝隙:
[url=http://underscorejs.org/#flatten]_.flatten[/url]函数就可以处理任意层数的嵌套数组:
[url=http://www.2ality.com/2012/06/dense-arrays.html]JavaScript: sparse arrays vs. dense arrays[/url]
[url=http://www.2ality.com/2011/07/array-from.html]ECMAScript.next: Array.from() and Array.of()[/url]