apply接受一个数组,并将该数组作为参数应用于实际函数。所以,
Math.max.apply(Math, list);
可以理解为
Math.max("12", "23", "100", "34", "56", "9", "233");
因此,这
apply是一种将数据数组作为参数传递给函数的便捷方法。记得
console.log(Math.max(list)); # NaN
将不起作用,因为
max不接受数组作为输入。
使用的另一个好处是
apply,您可以选择自己的上下文。您传递给
apply任何函数的第一个参数将是该
this函数的内部。但是,
max不依赖于当前上下文。因此,任何事物都可以代替
Math。
console.log(Math.max.apply(undefined, list)); # 233console.log(Math.max.apply(null, list)); # 233console.log(Math.max.apply(Math, list)); # 233
由于
apply实际上是在中定义的
Function.prototype,因此
apply默认情况下,任何有效的Javascript函数对象都将具有函数。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)