JavaScript中apply()函数的用途是什么?
传统上,我们的对象具有自己独特的方法 和属性。使用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