ในภาษาการเขียนโปรแกรมเชิงวัตถุแบบดั้งเดิมจะมีไวยากรณ์พิเศษสำหรับการเข้าถึงคลาสย่อยไปยังคลาสแม่ การอ้างอิงเรามักต้องการความช่วยเหลือเพิ่มเติมจากคลาสแม่เมื่อใช้วิธีการย่อย ในกรณีนี้คลาสย่อยมักจะเรียกวิธีการชื่อเดียวกันในคลาสพาเรนต์เพื่อทำงานในที่สุด
แม้ว่า JavaScript จะไม่มีไวยากรณ์พิเศษคล้ายกับข้างต้น แต่เราสามารถสร้างได้!
ฟังก์ชั่นเธอ () {}; her.prototype.name = 'anna'; her.prototype.toString = function () {var const = this.constructor; return const.uber? this.const.uber.toString () + ',' + this.name: this.name;} ฟังก์ชั่นของเขา () {}; var f = ฟังก์ชั่น () {}; f.prototype = her.prototype; his.prototype = ใหม่ f (); His.prototype.constructor = เธอ; his.uber = her.prototype; his.prototype.name = 'jock'; ฟังก์ชั่นเด็ก (ความกว้าง, ความสูง) {this.width = width; this.height = ความสูง; f (); child.prototype.constructor = child; child.uber = his.prototype; child.prototype.name = 'los'; child.prototype.getarea = function () {กลับ this.width * this.height;}}ในกระบวนการสร้างความสัมพันธ์เราแนะนำคุณลักษณะ Uber และชี้ไปที่ผู้ปกครองและวัตถุ
ที่นี่เราอัปเดตสิ่งต่อไปนี้:
1. ตั้งค่าแอตทริบิวต์ USBER เป็นอ้างอิงไปยังวัตถุหลัก
2. วิธีการ ToString () ได้รับการปรับปรุงแล้ว
วิธีการ toString () ก่อนหน้าเพียงส่งคืนสิ่งนี้ ตอนนี้เราได้เพิ่มงานเพิ่มเติมลงไปซึ่งคือการตรวจสอบคุณสมบัตินี้ constructor.usber คุณสมบัติและเรียกใช้วิธี TOSTRING () ของคุณสมบัตินี้หากมีอยู่
เนื่องจากสิ่งนี้ตัวสร้างเองนั้นเป็นฟังก์ชั่นและสิ่งนี้ constructo.usber เป็นการอ้างอิงถึงต้นแบบแม่ของวัตถุปัจจุบันเมื่อเราเรียกวิธีการ toString () ของเอนทิตีของเด็กวิธีการ toString () บนห่วงโซ่ต้นแบบของมันจะถูกเรียก
var my = child (1,2); my.toString () // anna, jock, los
ข้างต้นเป็นคำอธิบายโดยละเอียดว่าเด็ก ๆ จะเข้าถึงวัตถุแม่ที่แนะนำโดยบรรณาธิการของ JavaScript แนะนำให้คุณรู้จัก ฉันหวังว่ามันจะเป็นประโยชน์กับคุณ หากคุณมีคำถามใด ๆ โปรดฝากข้อความถึงฉันและบรรณาธิการจะตอบกลับคุณทันเวลา ขอบคุณมากสำหรับการสนับสนุนเว็บไซต์ Wulin.com!