ผูก()
ไม่เหมือน 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
โดยทั่วไป เมื่อเราส่งอาร์กิวเมนต์ไปยังฟังก์ชันใดๆ ค่า ผลลัพธ์จะปรากฏขึ้น ในลักษณะเดียวกันนี้ เนื่องจาก ฟังก์ชัน ถูกดำเนินการ เป็นเอาต์พุต หากเราพยายามส่งผ่านอาร์กิวเมนต์ไปยังฟังก์ชันนั้น ค่า เอาต์พุตจะถูกดำเนินการ
ตัวอย่าง
ในตัวอย่างต่อไปนี้ ฟังก์ชันเอาต์พุตถูกกำหนดให้กับตัวแปรที่เรียกว่า "รอบ" และอาร์กิวเมนต์ถูกส่งผ่านไปยังตัวแปรนั้นเพื่อรับ ค่า เอาต์พุตแทน ฟังก์ชัน เอาท์พุต
<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