ในโครงการจริงเรามักจะใช้ตัวสร้างเพื่อสร้างวัตถุจากนั้นเพิ่มวิธีการที่ใช้กันทั่วไปลงในวัตถุต้นแบบ ในที่สุดไม่ว่าจะเป็นอินสแตนซ์วัตถุโดยตรงหรือใช้เป็นคลาสหลักประกาศวัตถุและสืบทอดคลาสพาเรนต์
วันนี้มีวิธีการทั่วไปสองวิธี
การคัดลอกรหัสมีดังนี้:
// ชั้นเรียนพรีเมี่ยม
ฟังก์ชั่นบุคคล (ชื่อ) {
this.name = ชื่อ;
-
// subclass
ฟังก์ชั่นนักเรียน (เพศ) {
Person.apply (นี่คือข้อโต้แย้ง);
this.sex = เพศ;
-
1. มรดกต้นแบบ:
การคัดลอกรหัสมีดังนี้:
student.prototype = person.prototype; เนื่องจาก person.prototype.constructor ชี้ไปที่บุคคลการกำหนดวัตถุเป็นหลักคือการมอบหมายการอ้างอิงดังนั้นนักเรียน prototype.constructor จึงชี้ไปที่บุคคล
student.prototype.constructor = นักเรียน;
ใช้วัตถุต้นแบบของบุคคลเพื่อเขียนทับวัตถุต้นแบบของนักเรียน; .
ดูสิ่งต่อไปนี้:
การคัดลอกรหัสมีดังนี้:
student.prototype.add = function () {alert ("เพิ่ม")};
person.prototype.add (); // popt เพิ่ม
2. ตัวอย่างการสืบทอด:
การคัดลอกรหัสมีดังนี้:
student.prototype = คนใหม่ ();
2 นักเรียน. prototype.constructor = นักเรียน;
ใช้อินสแตนซ์ของบุคคลเพื่อเขียนทับวัตถุต้นแบบของนักเรียน มันจะไม่ถูกสะท้อนในตัวเอง prototype นั่นคือคลาสย่อยจะไม่ส่งผลกระทบต่อคลาสแม่
3. ใช้วัตถุควบคุมเพื่อรวมข้อดีของ 1 และ 2 เพื่อกำจัดข้อเสีย
การคัดลอกรหัสมีดังนี้:
var f = function () {};
f.prototype = person.prototype;
student.prototype = new f ();
student.prototype.constructor = นักเรียน;
F เป็นวัตถุที่ว่างเปล่าโดยมีเพียงวิธีต้นแบบบางอย่างด้านบนซึ่งใช้หน่วยความจำน้อยลงเมื่ออินสแตนซ์และยังแยกผลกระทบของคลาสย่อยในคลาสพาเรนต์