มีหลายโหมดใน JS ที่สามารถสร้างวัตถุและใช้งานคุณสมบัติและวิธีการที่มีอยู่ในวัตถุ
โดยทั่วไปแล้วตัวอักษรตัวแรกของชื่อคอนสตรัคเตอร์คือจดหมายทุนและตัวอักษรตัวแรกของชื่อที่ไม่ใช่โครงสร้างเป็นตัวอักษรตัวพิมพ์เล็ก แน่นอนความแตกต่างเพียงอย่างเดียวระหว่างตัวสร้างและฟังก์ชั่นทั่วไปคือความแตกต่างในการโทร ดังนั้นตราบใดที่ฟังก์ชั่นใด ๆ ที่เรียกผ่านใหม่ก็สามารถใช้เป็นตัวสร้าง หากไม่ได้เรียกผ่านใหม่มันก็เหมือนกับฟังก์ชั่นทั่วไป
ให้ฉันพูดถึงความเข้าใจในรูปแบบเหล่านี้:
โหมดโรงงาน: สร้างฟังก์ชั่นทั่วไปสร้างวัตถุวัตถุในฟังก์ชั่นเพิ่มแอตทริบิวต์และวิธีการให้กับวัตถุกำหนดค่าของมันและในที่สุดก็ส่งคืนวัตถุ ประเภทวัตถุไม่สามารถรับรู้ได้
โหมดคอนสตรัคเตอร์: สร้างคอนสตรัคเตอร์ใช้สิ่งนี้เพื่อกำหนดค่าและเมื่อใดก็ตามที่มีการสร้างอินสแตนซ์วิธีการจะถูกสร้างขึ้นหนึ่งครั้งและแต่ละวิธีจะดำเนินการคำสั่งเดียวกันซึ่งซ้ำซ้อน ข้อเสียนี้สามารถทำได้โดยการใส่วิธีการเข้าสู่สภาพแวดล้อมระดับโลก แต่วิธีนี้ไม่มีการห่อหุ้ม อย่างไรก็ตามสามารถแก้ไขได้ผ่านโหมดต้นแบบ
รูปแบบต้นแบบ: แต่ละฟังก์ชั่นมีคุณสมบัติต้นแบบซึ่งเป็นตัวชี้ชี้ไปที่วัตถุที่มีคุณสมบัติและวิธีการที่ใช้ร่วมกันโดยทุกกรณีที่สร้างโดยฟังก์ชั่น
ความสัมพันธ์ระหว่างวัตถุต้นแบบตัวสร้างและอินสแตนซ์มีดังนี้:
ภาพประกอบ: 1: ตัวสร้างและอินสแตนซ์ที่สร้างโดยตัวสร้างแอตทริบิวต์ต้นแบบของพวกเขาชี้ไปที่วัตถุต้นแบบของตัวสร้าง
2: วัตถุต้นแบบของตัวสร้างมีแอตทริบิวต์ตัวสร้างซึ่งชี้ไปที่ตัวสร้าง
3: คุณสมบัติและวิธีการทั้งหมดที่มีอยู่ในวัตถุต้นแบบของตัวสร้างสามารถแบ่งปันได้โดยทุกกรณีที่สร้างโดยตัวสร้าง
หลังจากเขียนวัตถุต้นแบบใหม่โดยใช้ตัวอักษรวัตถุตัวสร้างชี้ไปที่ตัวสร้างวัตถุ หากจำเป็นต้องชี้ไปที่ตัวสร้างอื่นคุณจะต้องปรับเปลี่ยนค่าของแอตทริบิวต์ตัวสร้างของวัตถุต้นแบบเช่น: ตัวสร้าง: บุคคล ด้วยวิธีนี้แม้ว่าวัตถุต้นแบบของบุคคลนั้นจะถูกเขียนใหม่ตัวสร้างของวัตถุต้นแบบยังคงชี้ไปที่ตัวสร้างบุคคล
เมื่อสร้างอินสแตนซ์ก่อน: หากคุณเพิ่มคุณสมบัติหรือวิธีการโดยตรงอินสแตนซ์สามารถเข้าถึงได้
หากวัตถุต้นแบบถูกเขียนใหม่ต้นแบบของตัวสร้างชี้ไปที่วัตถุต้นแบบใหม่ในขณะที่ต้นแบบของอินสแตนซ์ที่สร้างขึ้นก่อนหน้านี้ยังคงชี้ไปที่วัตถุต้นแบบดั้งเดิมดังนั้นอินสแตนซ์ไม่สามารถเข้าถึงคุณสมบัติใหม่หรือวิธีการใหม่ของวัตถุต้นแบบใหม่
วัตถุต้นแบบมีคุณสมบัติและวิธีการที่ใช้ร่วมกันดังนั้นแต่ละอินสแตนซ์จึงมีข้อมูลนี้ดังนั้นจึงไม่มีความแตกต่างระหว่างอินสแตนซ์และพารามิเตอร์ไม่สามารถส่งผ่านซึ่งไม่ใช่สิ่งที่เราต้องการ แต่ละอินสแตนซ์มีข้อมูลทั่วไปและข้อมูลที่แตกต่างกันดังนั้นเราสามารถใช้การรวมกันของโหมดคอนสตรัคเตอร์และโหมดต้นแบบ
ใช้การรวมกันของโหมดคอนสตรัคเตอร์และโหมดต้นแบบ:
รูปแบบต้นแบบของรัฐ: รวมตัวสร้างอิสระกับวัตถุต้นแบบของพวกเขาเริ่มต้นต้นแบบในตัวสร้างและเพิ่มวิธีการลงไป
หากไม่มีวิธีการจะถูกเพิ่มลงในวัตถุต้นแบบและดำเนินการเฉพาะเมื่อต้นแบบเริ่มต้นและเพียงครั้งเดียว
โหมดตัวสร้างกาฝาก: คล้ายกับโหมดโรงงานความแตกต่างคือ: โหมดตัวสร้างกาฝากเป็นตัวสร้างและอินสแตนซ์ถูกสร้างขึ้นผ่านใหม่
รูปแบบตัวสร้างที่เสถียร: ไม่มีคุณสมบัติสาธารณะและวิธีการของมันไม่ได้อ้างถึงวัตถุนี้ ไม่มีการใช้ใหม่เมื่อสร้างอินสแตนซ์ การเข้าถึงคุณสมบัติเท่านั้น (เช่นข้อมูลขาเข้า) ทำได้ผ่านวิธีการ
การแนะนำข้างต้นเกี่ยวกับหลายโหมดของวัตถุสร้าง JavaScript คือเนื้อหาทั้งหมดที่ฉันแบ่งปันกับคุณ ฉันหวังว่าคุณจะให้ข้อมูลอ้างอิงและฉันหวังว่าคุณจะสนับสนุน wulin.com มากขึ้น