ก่อนอื่นให้มีโปรแกรมมินิของวัตถุตัวสร้าง+ต้นแบบที่เรียบง่าย
ฟังก์ชั่น createObj (uname, uage) {this.username = uname; }ไม่มีปัญหาในโปรแกรมนี้ แต่มัน ซ้ำซ้อน มาก ::
createObj.prototype = {showuserage: function () {return.userage;}, showusername: function () {return this.username; ); console.log (obj1.showusername (), obj1.ShowuseUserage ());อย่างไรก็ตามการเขียนวัตถุต้นแบบนี้เป็นของวัตถุต้นแบบเริ่มต้นของ CreateObj
ก่อนที่จะเขียนใหม่คอนสตรัคเตอร์ชี้ไปที่ createobj
ฟังก์ชั่น createObj (uname, uage) {this.username = uname; } console.log (createobj.prototype.constructor === createobj);หลังจากเขียนใหม่แล้วผู้ก่อสร้างชี้ไปที่วัตถุ
createObj.prototype = {showuserage: function () {return.userage;}, showusername: function () {return this.username; .Constructor === วัตถุ);ดังนั้น ผู้ก่อสร้างไม่สามารถระบุวัตถุได้อย่างถูกต้องเพราะเขาจะได้รับการแก้ไข
ขั้นตอนที่เราเขียนไว้ก่อนหน้านี้จะถูกขยายออกไปบนวัตถุต้นแบบ (ต้นแบบ) จากนั้นวัตถุอินสแตนซ์
วัตถุอินสแตนซ์สามารถเรียกส่วนขยายได้ตามปกติหรือไม่?
ฟังก์ชั่น createObj (uname, uage) {this.username = uname; } console.log (obj1.showusername ());มันสามารถเรียกได้ตามปกติ แต่ถ้าวัตถุต้นแบบถูกเขียนใหม่มันจะไม่ถูกเรียก
ฟังก์ชั่น createObj (uname, uage) {this.username = uname; ;เพราะหลังจากเขียนวัตถุต้นแบบใหม่แล้วมันจะเป็นอินสแตนซ์ก่อนที่จะเขียนใหม่ดังนั้นต้นแบบโดยนัยของอินสแตนซ์ __proto__ จะไม่ชี้ไปที่วัตถุต้นแบบที่เขียนใหม่ดังนั้นคุณจะไม่เรียกปัญหาอื่น ต้นแบบมีประเภทใบเสนอราคาบนวัตถุ (ต้นแบบ) และระวังเพราะหลายอินสแตนซ์แบ่งปันวัตถุต้นแบบตราบใดที่มีอินสแตนซ์ที่เปลี่ยนค่าของประเภทการอ้างอิงอินสแตนซ์อื่น ๆ ทั้งหมดจะได้รับผลลัพธ์หลังจาก เปลี่ยน.
function createObj () {} createObj.prototype = {ชื่อ: 'ghostwu', ทักษะ: ['php', 'javascript', 'linux']}; Python ');คุณลักษณะการแชร์ของต้นแบบสามารถขยายวิธีการบางอย่างสำหรับวัตถุที่สร้างขึ้นได้บางอย่างเช่นอาร์เรย์ที่จะทำซ้ำ
array.prototype.unique = function () {var res = []; = - 1) {res.push (นี่ [i]);}} return res;} var anrr = [10, 20, 30, 30, 20, 40, 20]; ; // 10, 20, 30, 40อย่างไรก็ตามอย่าขยายวิธีการในวัตถุที่สร้างขึ้นอย่างไม่เป็นทางการ
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้