JavaScript 中 apply() 函数的用途是什么?

javascriptobject oriented programmingfront end technology更新于 2025/4/8 21:32:17

传统上,我们的对象都有自己独特的方法和属性。使用 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

在下面的例子中,当传递 array  而不是单个元素时,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

相关文章


有用资源