แต่ละฟังก์ชั่นมีสองคุณสมบัติ: ความยาวและต้นแบบ
ความยาว: จำนวนพารามิเตอร์ชื่อที่ฟังก์ชันปัจจุบันต้องการยอมรับ
ต้นแบบ: เป็นวิธีที่แท้จริงในการรักษาความแข็งแกร่งทั้งหมดของพวกเขา
การคัดลอกรหัสมีดังนี้:
ฟังก์ชั่น saysname (ชื่อ) {
การแจ้งเตือน (ชื่อ);
-
ฟังก์ชั่นผลรวม (num1, num2) {
ส่งคืน num1 + num2;
-
ฟังก์ชั่น sayshi () {
การแจ้งเตือน ("สวัสดี");
-
การแจ้งเตือน (sayname.length); // 1 จำนวนพารามิเตอร์
การแจ้งเตือน (sum.length); // 2 จำนวนพารามิเตอร์: 2
การแจ้งเตือน (sayhi.length); // 0 ไม่มีพารามิเตอร์
แต่ละฟังก์ชั่นมีสองวิธีที่ไม่อยู่ในตัว: ใช้ () และการโทร ()
ฟังก์ชั่นการโทรทั้งสองวิธีในขอบเขตที่เฉพาะเจาะจงซึ่งจริง ๆ แล้วเท่ากับการตั้งค่าของวัตถุนี้ในร่างกายฟังก์ชัน
ใช้ก่อน () ยอมรับสองพารามิเตอร์: หนึ่งคือขอบเขตของฟังก์ชันที่ทำงานและอีกอันคืออาร์เรย์ของพารามิเตอร์ (สามารถเป็นอินสแตนซ์อาร์เรย์หรือวัตถุอาร์กิวเมนต์)
การคัดลอกรหัสมีดังนี้:
ฟังก์ชั่นผลรวม (num1, num2) {
ส่งคืน num1 + num2;
-
ฟังก์ชั่น callesum1 (num1, num2) {
return sum.apply (สิ่งนี้, อาร์กิวเมนต์); // ผ่านในวัตถุอาร์กิวเมนต์
-
ฟังก์ชั่น callesum2 (num1, num2) {
return sum.apply (นี่, [num1, num2]);
-
การแจ้งเตือน (callesum1 (10, 10)); // 20
การแจ้งเตือน (callesum2 (10, 20)); // 30
ประการที่สองพารามิเตอร์แรกของวิธีการโทรไม่เปลี่ยนแปลง การเปลี่ยนแปลงอะไรคือพารามิเตอร์อื่น ๆ จะถูกส่งผ่านพารามิเตอร์และพารามิเตอร์ที่ส่งผ่านไปยังฟังก์ชั่นจะต้องแสดงรายการทีละรายการ
การคัดลอกรหัสมีดังนี้:
ฟังก์ชั่นผลรวม (num1, num2) {
ส่งคืน num1 + num2;
-
ฟังก์ชั่น callsum (num1, num2) {
return sum.call (นี่, num1, num2);
-
การแจ้งเตือน (callsum (10, 200));
สำหรับวิธีการที่สะดวกกว่านั้นขึ้นอยู่กับความปรารถนาของคุณทั้งหมด หากไม่มีพารามิเตอร์มันจะเหมือนกับการใช้อย่างใดอย่างหนึ่ง
อย่างไรก็ตามการปรากฏตัวของวิธีการสมัครและการโทรไม่ได้เป็นเพียงแค่วิธีการลบพารามิเตอร์ตัวถัง
การใช้งานจริงของพวกเขาอยู่ในขอบเขตที่ฟังก์ชั่นส่วนขยายขึ้นอยู่กับ
การคัดลอกรหัสมีดังนี้:
window.color = "สีแดง";
var o = {color: "blue"};
ฟังก์ชั่น sayscolor () {
การแจ้งเตือน (this.color);
-
saycolor (); // สีแดง
saycolor.call (นี่); // สีแดง
saycolor.call (หน้าต่าง); // สีแดง
saycolor.call (o); // blue
ข้อได้เปรียบที่ใหญ่ที่สุดของการใช้งานและการโทรเพื่อขยายขอบเขตคือไม่จำเป็นต้องมีความสัมพันธ์ระหว่างการมีเพศสัมพันธ์กับวิธีการ
Ecmascript5 ยังกำหนดวิธี: bind () วิธีนี้สร้างอินสแตนซ์ของฟังก์ชั่นที่มีค่าจะถูกผูกไว้กับค่าที่ส่งผ่านไปยังฟังก์ชันการผูก
การคัดลอกรหัสมีดังนี้:
window.color = "สีแดง";
var o = {color: "blue"};
ฟังก์ชั่น sayscolor () {
การแจ้งเตือน (this.color);
-
var bindfun = saycolor.bind (o);
bindfun (); // blue
ข้างต้นเป็นเรื่องเกี่ยวกับบทความนี้ฉันหวังว่าคุณจะชอบมัน