与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