การสร้างวัตถุ:
เมื่อวัตถุฟังก์ชันถูกสร้างขึ้นวัตถุฟังก์ชันที่สร้างโดยตัวสร้างฟังก์ชันจะทำงานเช่นนี้:
คัดลอกรหัสรหัสดังนี้:
this.prototype = {constructor: this};
สมมติว่าฟังก์ชั่น f
เมื่อ F ถูกสร้างขึ้นโดยวิธีการใหม่ตัวสร้างของวัตถุจะถูกตั้งค่าเป็น f.prototype.constructor นี้
หากฟังก์ชั่นปรับเปลี่ยนต้นแบบของฟังก์ชันก่อนที่จะสร้างวัตถุมันจะส่งผลกระทบต่อคุณสมบัติ Construtor ของวัตถุสร้างสรรค์
ชอบ:
คัดลอกรหัสรหัสดังนี้:
ฟังก์ชั่น f () {};
f.prototype = {constructor: '1111'};
var o = new f ();
หลักการของการสืบทอด:
การสืบทอดใน JavaScript เป็นกลไกที่ใช้ห่วงโซ่ดั้งเดิม และทุกครั้งที่วัตถุอินสแตนซ์ใหม่แอตทริบิวต์ส่วนตัวของวัตถุ __proto__ จะเชื่อมต่อโดยอัตโนมัติกับต้นแบบของตัวสร้าง
อินสแตนซ์คือการค้นหาห่วงโซ่คุณสมบัติต้นแบบส่วนตัวของวัตถุอินสแตนซ์เพื่อพิจารณาว่าเป็นอินสแตนซ์ของวัตถุที่ระบุ
ตัวอย่างเฉพาะ:
คัดลอกรหัสรหัสดังนี้:
// อินสแตนซ์ของการใช้งาน
ฟังก์ชั่น myinstanceof (obj, type)
-
var proto = obj .__ loto__;
ในขณะที่ (โปรโต)
-
if (propo === type.prototype) break;
proto = proto .__ loto__;
-
คืนโปรโต!
-
มุมมองฟังก์ชัน () {}
ฟังก์ชั่น treeview () {}
treeview.prototype = new view ();
treeview.prototype.constructor = treeview;
var view = new Treeview ();
การแจ้งเตือน (ดูอินสแตนซ์ของมุมมอง);
การแจ้งเตือน (ดูอินสแตนซ์ของ Treeview);
การแจ้งเตือน (myinstanceof (ดู, ดู));
การแจ้งเตือน (myinstanceof (ดู, treeview));