bind()
ต่างจาก apply() ที่คืนค่า value ทันที bind() คืนค่า function ที่สามารถนำไป execute ได้ภายหลัง
ตัวอย่าง: apply() คืนค่า value, bind() คืนค่า function
ตัวอย่างที่ 1
<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
ทั่วไปส่ง arguments เข้าฟังก์ชันได้ value output แต่ bind() คืน function ถ้าส่ง arguments เข้า function ที่คืนมา จะได้ value output
ตัวอย่างที่ 2
กำหนด output function ให้ตัวแปร "round" ส่ง arguments เข้า round ได้ value output
<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