ลืมเกี่ยวกับการใช้สองสิ่งนี้เสมอและจดบันทึกไว้เพื่อทำบันทึก
ฟังก์ชั่นของพวกเขาเหมือนกันทุกประการ แต่พารามิเตอร์ที่ส่งผ่านนั้นแตกต่างกัน
นำมาใช้
ใช้ยอมรับพารามิเตอร์สองตัว อันแรกกำหนดจุดชี้ของวัตถุนี้ในร่างกายฟังก์ชั่นและอันที่สองคือชุดที่มีตัวห้อย (วัตถุสามารถข้ามได้) วิธีการใช้งานผ่านองค์ประกอบในชุดนี้เป็นพารามิเตอร์ไปยังฟังก์ชันที่เรียกว่า:
var func = function (a, c, c) {แจ้งเตือน ([a, b, c]); // [2,2,3 เหมือนกัน} func.apply(null, [1,2,3]);เรียก
พารามิเตอร์ที่ส่งผ่านในการโทรไม่ได้รับการแก้ไข เช่นเดียวกับที่ใช้คือพารามิเตอร์แรกยังแสดงถึงการชี้นี้ในร่างกายฟังก์ชั่น หลังจากพารามิเตอร์ที่สองเริ่มต้นพารามิเตอร์แต่ละตัวจะถูกส่งไปยังฟังก์ชันตามลำดับ:
var func = function (a, b, c) {แจ้งเตือน ([a, b, c]); // [2,2,3 เหมือนกัน} func.call(null, 1,2,3);การโทรเป็นน้ำตาลวากยสัมพันธ์ของ Aplly หากพารามิเตอร์แรกเป็นโมฆะสิ่งนี้ในฟังก์ชั่นร่างกายชี้ไปที่วัตถุโฮสต์ซึ่งเป็นหน้าต่างในเบราว์เซอร์
ใช้การโทรและสมัคร
1. เปลี่ยนจุดนี้
ตัวอย่างข้างต้นคือ
2. function.prototype.bind
จำลองฟังก์ชัน. prototype.bind
function.prototype.bind = ฟังก์ชั่น (บริบท) {var self = this; return function () {return self.apply (บริบท, อาร์กิวเมนต์); }}; var obj = {ชื่อ: 'cxs'}; var func = function () {Alert (this.name); // cxs}. -bind (obj); fun ();