1. การใช้คลาสพื้นฐาน
วิธีที่ 1:
การคัดลอกรหัสมีดังนี้:
ฟังก์ชั่นฟังก์ชั่น sth (a) // constructor
-
this.a = a;
this.fun = เอาต์พุต; // ฟังก์ชันสมาชิก
-
ฟังก์ชันเอาต์พุต (a, b, c)
-
document.write (this.a);
-
//เรียก
var s = ใหม่ sth (250);
S.Fun (1, 2, 3);
ouput (1, 2, 3); // ถ้าเอาต์พุตผิดก่อน sth
วิธีที่ 2:
คัดลอกรหัสดังต่อไปนี้: ฟังก์ชั่น sth (a)
-
this.a = a;
this.output = function ()
-
document.write (this.a);
-
-
var s = ใหม่ sth (2);
S.Output (); // เอาท์พุท 2
2. มรดก
วิธีที่ 1:
คัดลอกรหัสดังนี้: ฟังก์ชั่น A (x)
-
this.x = x;
-
ฟังก์ชั่น b (x, y)
-
// วิธี 1
-
this.construct = a;
this.construct (x);
ลบสิ่งนี้โครงสร้าง;
-
// วิธี 2
//a.call( นี่, x);
// วิธี 3
A.Apply (นี่คืออาร์เรย์ใหม่ (x)); // มันยังสามารถ a.apply (สิ่งนี้อาร์กิวเมนต์) แต่ลำดับพารามิเตอร์อาร์กิวเมนต์ต้องถูกต้อง
this.y = y;
this.print = function ()
-
document.write ("x =", x,
", y =", y);
-
-
var b = new b (1, 2);
b.print ();
การแจ้งเตือน (b อินสแตนซ์ของ A); // เอาต์พุตเท็จ
ข้อดี: สามารถสืบทอดหลายมรดกได้ (เพียงแค่โทรหลายสาย)
ข้อบกพร่อง:
・ จะต้องใช้เป็นตัวสร้าง
・ ใช้อินสแตนซ์ของตัวดำเนินการเพื่อใช้งานผลลัพธ์การสืบทอดนี้เป็นเท็จ
วิธีที่ 2:
คัดลอกรหัสดังนี้: ฟังก์ชัน A ()
-
-
A.prototype.x = 1;
ฟังก์ชั่น B ()
-
-
b.prototype = new a (); // ไม่สามารถใช้พารามิเตอร์ได้!
b.prototype.y = 2;
b.prototype.print = function ()
-
document.write (this.x, ",", this.y, "<br>");
-
var b = new b ();
b.print ();
document.write (b อินสแตนซ์ของ A); // เอาต์พุตจริง
ข้อบกพร่อง:
・ ไม่สามารถบรรลุหลายมรดก
・ ตัวสร้างไม่มีพารามิเตอร์
เคล็ดลับ
มักจะใช้โหมดไฮบริดทั้งคู่
การคัดลอกรหัสมีดังนี้:
ฟังก์ชั่น A (x)
-
this.x = x;
-
a.prototype.printx = function () // เขียน this.printx = ฟังก์ชั่น .... นอกจากนี้ยังเป็นไปได้เช่นเดียวกันด้านล่าง
-
document.write (this.x, "<br>");
-
ฟังก์ชั่น b (x, y)
-
A.CALL (นี่, x);
this.y = y;
-
b.prototype = new a (); // ไม่สามารถใช้พารามิเตอร์ได้!
b.prototype.printxy = function ()
-
document.write (this.x, ",", this.y, "<br>");
-
var b = new b (1, 2);
b.printx (); // เอาท์พุท 1
b.printxy (); // เอาท์พุท 1, 2
document.write (b อินสแตนซ์ของ A); // เอาต์พุตจริง
3. การใช้ฟังก์ชั่นสมาชิกแบบคงที่
คัดลอกรหัสดังต่อไปนี้: ฟังก์ชั่น sth (a)
-
this.a = a;
-
sth.fun = ฟังก์ชั่น (s)
-
Document.write (SA);
-
var s = ใหม่ sth (2);
sth.fun; // เอาท์พุท 2
iv. ปล่อยวัตถุ
คัดลอกรหัสดังนี้: var obj = วัตถุใหม่; // OBJ เป็นข้อมูลอ้างอิง
obj = null; // dereference จะเก็บขยะโดยอัตโนมัติ หากคุณต้องการปล่อยวัตถุนี้เลยการอ้างอิงทั้งหมดจะต้องได้รับมอบหมายให้เป็นโมฆะ
V. วัตถุฟังก์ชัน
คัดลอกรหัสดังนี้: var v = ฟังก์ชันใหม่ ("arg1", "arg2", "document.write (arg1 + arg2);"); // กำหนดวัตถุฟังก์ชันด้วยพารามิเตอร์ Arg1 และ Arg2 ตามลำดับ
V (1, 2); // จะเอาต์พุต 3
6. ฟังก์ชั่นการโทรกลับ
คัดลอกรหัสดังนี้: ฟังก์ชั่นการโทรกลับ (func, arg)
-
func (arg);
-
ฟังก์ชั่นสนุก (Arg)
-
document.write (arg);
-
// การโทรกลับ (func, "sb"); // วิธีนี้ไม่ทำงาน
var func = ฟังก์ชั่นใหม่ ("arg", "fun (arg);");
// แน่นอน func (arg) สามารถถูกแทนที่ด้วยรหัสการดำเนินการเฉพาะ
// แต่ถ้ารหัสฟังก์ชั่นมีขนาดใหญ่ก็จะดีกว่าที่จะทำเช่นนี้
การโทรกลับ (func, "sb");
7. ฟังก์ชั่นมากเกินไป
คัดลอกรหัสดังนี้: ฟังก์ชั่นสนุก ()
-
สวิตช์ (อาร์กิวเมนต์ความยาว)
-
กรณีที่ 1:
document.write (อาร์กิวเมนต์ [0]);
หยุดพัก;
กรณีที่ 2:
document.write (อาร์กิวเมนต์ [0] + อาร์กิวเมนต์ [1]);
หยุดพัก;
ค่าเริ่มต้น:
document.write ("ข้อผิดพลาด!");
หยุดพัก;
-
-
สนุก (1);
สนุก (1, 2);
8. ใช้ฟังก์ชั่นปิดฟังก์ชั่นด้วย "ตัวแปรคงที่"
คัดลอกรหัสดังนี้: ฟังก์ชั่นสนุก ()
-
var v = 1;
ฟังก์ชั่น fun2 ()
-
++ v;
document.write (v);
document.write ("<br>");
กลับ V;
-
กลับ fun2;
-
var func = fun ();
func (); // เอาท์พุท 2
func (); // เอาต์พุต 3
func (); // เอาต์พุต 4