对javascript应用()问题

Ric*_*cky 6 javascript

我研究以下代码来记录

console.log.apply( console, arguments );
Run Code Online (Sandbox Code Playgroud)

apply()这里的目的是什么?

为什么不console.log("message", arguments)呢?

谢谢.

Mat*_*hen 8

console.log("message", arguments)
Run Code Online (Sandbox Code Playgroud)

调用log两个参数,"message"和类似数组的对象参数.

console.log.apply( console, arguments );
Run Code Online (Sandbox Code Playgroud)

n参数调用它,其中n是类数组对象参数的长度.换句话说,参数被打包成单个参数.该方法的背景是console.例如:

function foo(a, b, c)
{
  console.log.apply( console, arguments );
}
foo(1,2,3);
Run Code Online (Sandbox Code Playgroud)

大致相当于:

console.log(1,2,3);
Run Code Online (Sandbox Code Playgroud)


Lin*_*een 7

apply()函数调用另一个具有给定this值的函数,并arguments作为数组提供.

隐含的原因func.apply(obj, args)是确保在内func(),thisobj.