Javascript中的apply()方法浅析

  之前我们说过 Javascript Call 方法,这次我们就说说和Call方法类似的apply方法。

  apply vs call

  两者间的不同在于:传递的是参数,还是参数数组

  这个是call的用法

  

复制代码 代码如下:

  theFunction.call(valueForThis, arg1, arg2, ...)

  而这个则是apply

  

复制代码 代码如下:

  theFunction.apply(valueForThis, arrayOfArgs)

  故而

  

复制代码 代码如下:

  arrayOfArgs = [arg1, arg2, ...];

  Javascript apply 方法

  先看看之前的call的用法

  

复制代码 代码如下:

  function print(p1, p2) {

  console.log( p1 + ' ' + p2);

  }

  print.call(undefined, "Hello", "World");

  由上面的叙述,我们可以得出当

  

复制代码 代码如下:

  args =  "Hello", "World";

  function print(p1, p2) {

  console.log( p1 + ' ' + p2);

  }

  print.call(undefined, args);

  两者是等价的,而实际上他们也是等价的,输出结果同样是"Hello,World"!