0. วิชาบังคับก่อน
คุณสมบัติของวัตถุจาวาสคริปต์แบ่งออกเป็นสองรูปแบบของการดำรงอยู่ หนึ่งคืออินสแตนซ์การดำรงอยู่และอีกอย่างคือการมีอยู่ในวัตถุต้นแบบ
ตามข้างต้นจะมี 4 สถานการณ์เมื่อตรวจจับแอตทริบิวต์
ในกรณีหรือในวัตถุต้นแบบ
ในอินสแตนซ์มันไม่มีอยู่ในวัตถุต้นแบบ
ในตัวอย่างมันมีอยู่ในวัตถุต้นแบบ
มีอยู่ในทั้งสองกรณีและในวัตถุต้นแบบ
1. hasownprototype ()
hasownprototype () ยอมรับชื่อคุณสมบัติในรูปแบบสตริงและส่งคืนจริงถ้าอินสแตนซ์เองมีคุณสมบัตินี้ (กรณีที่ 2/กรณี 4) มิฉะนั้นจะส่งคืนเท็จ (กรณี 1/กรณี 3)
การคัดลอกรหัสมีดังนี้:
functino person () {}
person.prototype.name = 'Apple';
var person1 = คนใหม่ ();
var person2 = คนใหม่ ();
person1.name = 'Banana';
console.log (person1.hasownprototype (ชื่อ)); //จริง
console.log (person2.hasownprototype (ชื่อ)); //เท็จ
2. ในโอเปอเรเตอร์
ตัวดำเนินการในจะส่งคืนจริงโดยไม่คำนึงว่าแอตทริบิวต์มีอยู่ในอินสแตนซ์ของตัวเองหรือในวัตถุต้นแบบ (กรณีที่ 2/กรณี 3/กรณี 4); มิฉะนั้นจะส่งคืนเท็จ (กรณีที่ 1)
การคัดลอกรหัสมีดังนี้:
console.log ('ชื่อ' ในบุคคล 1); //จริง
console.log ('ชื่อ' ใน person2); //จริง
3. ตรวจจับคุณสมบัติของต้นแบบ
การรวมตัวดำเนินการในตัวดำเนินการและ hasownproperty () สามารถปรับแต่งฟังก์ชั่นเพื่อตรวจจับว่าแอตทริบิวต์ที่กำหนดมีอยู่ในต้นแบบหรือไม่
การคัดลอกรหัสมีดังนี้:
ฟังก์ชั่น HASPROTOTYPEPROPERTY (วัตถุชื่อ) {
return! object.hasownprototype (ชื่อ) && (ชื่อในวัตถุ);
-
console.log (hasprototypeproperty (person1, 'name')); // false
console.log (hasprototypeproperty (person2, 'name')); // true
แอตทริบิวต์ที่กำหนดมีอยู่ในต้นแบบส่งคืนจริง (กรณีที่ 3) มิฉะนั้นเท็จ (กรณี 1/กรณี 2/กรณี 4)
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่าคุณจะชอบมัน