ครอบคลุมต้นแบบ
// ตัวอย่างนักโทษ // 1 กำหนดวัตถุต้นแบบ var proto = {ประโยค: 4, // การทดลองบำนาญ: 2 // ระยะเวลาการทดลอง}; // 2. กำหนดตัวสร้างของวัตถุต้นแบบ var prisoner = function (ชื่อ, id) {this.name = name; this.id = id; - // 3. เชื่อมโยงตัวสร้างกับนักโทษต้นแบบ prototype = proto; // 4. อินสแตนซ์วัตถุ - ยกตัวอย่างวัตถุ var makePrisoner = ฟังก์ชั่น (ชื่อ, id) {// ใช้ฟังก์ชั่นโรงงานเพื่อเพิ่มพลังให้กับวัตถุหลักของวัตถุ Var Prisoner = Object.create (proto); Prisoner.name = ชื่อ; Prisoner.id = id; นักโทษกลับ; - var firstPrisoner = makePrisoner ('Joe', '12a'); //firstprisoner.sentence ไม่สามารถค้นหาแอตทริบิวต์ประโยคในวัตถุ FirstPrisoner ได้ // ดังนั้นค้นหาต้นแบบของวัตถุและค้นหาทั้งสอง Output 4 Console.log (FirstPrisoner.Sentence); console.log (FirstPrisoner .__ Proto __. ประโยค); // ตั้งค่าแอตทริบิวต์ประโยคของวัตถุเป็น 10 FirstPrisoner.Sentence = 10; // outputs 10 // ยืนยันว่าค่าคุณสมบัติของวัตถุได้ถูกตั้งค่าเป็น 10 console.log (FirstPrisoner.Sentence); // แต่ต้นแบบของวัตถุไม่เปลี่ยนแปลงและค่ายังคงเป็น 4 console.log (FirstPrisoner .__ Proto __. ประโยค); // เพื่อที่จะส่งคืนแอตทริบิวต์ที่ได้รับไปยังค่าของต้นแบบให้ลบแอตทริบิวต์ออกจากวัตถุลบ FirstPrisoner.Sentence; // ถัดไปเอ็นจิ้น JavaScript ไม่สามารถค้นหาแอตทริบิวต์บนวัตถุ // คุณต้องกลับไปหาห่วงโซ่ต้นแบบและค้นหาแอตทริบิวต์บนวัตถุต้นแบบ // ทั้งสองของ Output 4 console.log (FirstPrisoner.Sentence); console.log (FirstPrisoner .__ Proto __. ประโยค);เอาต์พุตโหนดเทอร์มินัล Ubuntu
xxh@xxh-e440: ~/workspace $ node t6 4 4 10 4 4 4 4 4 4
แล้วจะเกิดอะไรขึ้นถ้าค่าคุณสมบัติของวัตถุต้นแบบเปลี่ยนไป? ฉันรู้ว่าคุณกำลังคิด
การอภิปรายสั้น ๆ เกี่ยวกับต้นแบบการซ้อนทับ JavaScript และการเปลี่ยนต้นแบบเป็นเนื้อหาทั้งหมดที่ฉันได้แบ่งปันกับคุณ ฉันหวังว่าคุณจะให้ข้อมูลอ้างอิงและฉันหวังว่าคุณจะสนับสนุน wulin.com มากขึ้น