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"!