ผูก()
ไม่เหมือน 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