ก่อนอื่นดูรหัสต่อไปนี้:
ฟังก์ชั่นเครื่องจักร (ecode, แรงม้า) {this.ecode = ecode; this.horsepower = horsepower;} function showme () {alert (this.name + "" + this.ecode + "" + this.horsepower);} var machine = เครื่องใหม่ ("code1", 15); machine.name = "Machine1"; machine.showme = showme; machine.showme ();ในรหัสชิ้นนี้หลังจากสร้างวัตถุเครื่องฟังก์ชั่น showme จะกลายเป็นวิธีการของเครื่องจักรของเครื่องผ่าน machine.showme = showme;
อย่างไรก็ตามมันขึ้นอยู่กับฟังก์ชั่นสองฟังก์ชั่นข้างต้น (หนึ่งคือตัวสร้างวัตถุและอีกวิธีหนึ่งเป็นวิธีธรรมดา) ที่ไม่มีส่วนเกี่ยวข้องกัน รหัสดังกล่าวไม่ได้ "สง่างาม" ดังนั้นจึงมีต้นแบบ
// ฟังก์ชั่นเครื่องจักร (Ecode, แรงม้า) {this.ecode = ecode; this.horsepower = แรงม้า;} // ให้ความสนใจเป็นพิเศษกับประโยคนี้ machine.prototype จะเริ่มต้นเมื่อเริ่มต้นเป็นครั้งแรก // เมื่อเรียกเครื่องเป็นตัวสร้างค่าของเครื่องยนต์จะไม่เปลี่ยนอีกครั้ง machine.prototype.engine = this.ecode + "" + this.horsepower; machine.prototype.showme = function () {Alert (this.name + "" this.ecode + "" -การใช้รหัสด้านบนวัตถุเครื่องทั้งหมดมีวิธีการแสดง
แต่ให้ความสนใจเป็นพิเศษกับ:
ต้นแบบเป็นเพียงอินสแตนซ์ที่ต้องเผชิญไม่ใช่วัตถุคลาส (ใน js คลาสเองเป็นวัตถุ) ดังนั้น machine.showme (); จะรายงานข้อผิดพลาดเนื่องจากวัตถุเครื่องไม่มีวิธีการแสดง
ดังนั้นเราจะใช้วิธี showme ได้อย่างไร? ต้องสร้างอินสแตนซ์ของเครื่องใหม่และมีเพียงอินสแตนซ์ของเครื่องเท่านั้นที่มีวิธีนี้
var machine = เครื่องใหม่ ("code1", 15); machine.name = "machine1"; machine.showme (); // เอาท์พุท Machine1 Code1 15ด้วยต้นแบบมันง่ายกว่าที่เราจะใช้ความสัมพันธ์ในการสืบทอด ตัวอย่างเช่นถ้าฉันเขียนคลาสรถตอนนี้ฉันต้องสืบทอดคลาสเครื่องปัจจุบันและฉันแค่ต้องเขียนรหัสต่อไปนี้:
// car function car (ชื่อ, ecode, แรงม้า) {this.name = name; // การคำนวณคอนสตรัคเตอร์ของคลาสแม่เพื่อให้วัตถุรถยนต์มี Ecode และแอตทริบิวต์แรงม้าเครื่องเรียกเก็บเงิน (นี่คือ ecode, แรงม้า);} // ต้นแบบของรถยนต์ชี้ไปที่เครื่องเพื่อให้วัตถุรถยนต์มีคุณสมบัติและวิธีการใด ๆ ของเครื่องจักรคำอธิบายประกอบนั้นชัดเจนมากที่นี่ดังนั้นฉันจะไม่เข้าไปดูรายละเอียด
จากนั้นเราสามารถสร้างวัตถุใหม่เพื่อทดสอบ:
// สร้างวัตถุใหม่ของรถคลาส var xiali = รถใหม่ ("xiali", "aaa", 15); แจ้งเตือน (xiali.Engine); xiali.showme ();ข้างต้นเป็นแอปพลิเคชันพื้นฐานของต้นแบบ แต่ก็เป็นแอปพลิเคชันที่สำคัญที่สุดของต้นแบบ
การใช้ต้นแบบที่คุณเชี่ยวชาญจะมีความเข้าใจที่ลึกซึ้งยิ่งขึ้นเกี่ยวกับการก่อสร้างและการสืบทอดของวัตถุในอนาคต
หากต้องการดูไวยากรณ์ JavaScript เพิ่มเติมคุณสามารถติดตาม: "คำแนะนำอ้างอิง JavaScript" และ "คู่มือสไตล์รหัส JavaScript" ฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น