传统上,我们的对象具有自己独特的方法 和属性。使用apply()函数,我们可以构造一个可以访问所有给定对象组合的方法。
实际上,此方法与 call()函数的工作原理相同,但是当需要传递类似变量的数组时,apply()函数就会出现。
在以下示例中,分别调用了多个元素,因此无需使用apply()函数,而使用了call()函数。
<html> <body> <script> var obj = {num : 10}; var mul = function(i, j, k){ return this.num * i*j*k; } document.write(mul.call(obj,6,3,4)); </script> </body> </html>
输出结果
720
在下面的示例中,当传递数组 时,而不是单个元素,则call()函数返回了NaN, 而apply()函数返回了一个值。这是因为call()函数无法访问数组。
<html> <body> <script> var obj = {num : 10}; var mul = function(i, j, k){ return this.num * i*j*k; } var array = [6,3,4] document.write(mul.call(obj,array)); document.write("</br>"); document.write(mul.apply(obj,array)); </script> </body> </html>
输出结果
NaN 720