如何在JavaScript中应用bind()函数?

bind()

apply()函数提供值 作为输出的方式不同,Bind()函数产生的功能具有执行代码的能力。

如果我们观察以下代码,则apply()函数将导致值 输出,而bind()函数将导致函数 输出。

示例

<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.bind(obj,array));
   document.write("</br>");
   document.write(mul.apply(obj,array));
</script>
</body>
</html>

输出结果

function () { [native code] }
720


通常,当我们将参数传递给任何函数时,将显示值 输出。同样地,由于函数 作为输出执行,因此,如果我们尝试将参数传递给该函数,则将执行值 输出。

示例

在下面的示例中,将输出函数分配给一个名为“ round”的变量,并将参数传递给该变量,以获取值 输出而不是函数 输出。

<html>
<body>
<script>
   var obj = {num : 10};
   var mul = function(i, j, k){
      return this.num * i*j*k;
   }
   var array = [6,3,4]
   var round = mul.bind(obj);
   document.write(round(6,3,4));
   document.write("</br>");
   document.write(mul.apply(obj,array));
</script>
</body>
</html>

输出结果

720
720