ภาพรวม
วิธี HASOWNPROPERTY () ใช้เพื่อตรวจสอบว่าวัตถุมีคุณสมบัติที่ระบุหรือไม่
ไวยากรณ์
obj.hasownproperty (Prop)
พารามิเตอร์
•เสา
•ชื่อของแอตทริบิวต์ที่จะตรวจพบ
อธิบาย
วัตถุทั้งหมดที่สืบทอด Object.prototype จะได้รับการสืบทอดจากห่วงโซ่ต้นแบบไปยังวิธี HasownProperty วิธีนี้สามารถใช้ในการตรวจสอบว่าวัตถุมีคุณสมบัติเฉพาะหรือไม่ ซึ่งแตกต่างจากผู้ให้บริการในวิธีนี้จะไม่สนใจคุณสมบัติที่สืบทอดมาจากห่วงโซ่ต้นแบบ
ตัวอย่าง
ตัวอย่างที่ 1: ใช้วิธี HasownProperty เพื่อตรวจสอบว่าวัตถุมีคุณสมบัติเฉพาะหรือไม่
ตัวอย่างต่อไปนี้ตรวจพบว่า Object O มีแอตทริบิวต์ของตัวเองหรือไม่:
การคัดลอกรหัสมีดังนี้:
o = วัตถุใหม่ (); o.prop = 'exish'; ฟังก์ชั่น changeo () {
O.NewProp = O.Prop;
ลบ o.prop;} o.hasownproperty ('prop');
// return true
Changeo ();
O.HasownProperty ('prop');
// return false
ตัวอย่างที่ 2: ความแตกต่างระหว่างคุณลักษณะของคุณเองและคุณลักษณะที่สืบทอดมา
ตัวอย่างต่อไปนี้แสดงให้เห็นถึงความแตกต่างระหว่างวิธี HasownProperty ปฏิบัติต่อคุณสมบัติของตัวเองและคุณสมบัติที่สืบทอดมา:
การคัดลอกรหัสมีดังนี้:
o = วัตถุใหม่ (); o.prop = 'มีอยู่'; o.hasownproperty ('prop');
// return true
O.HasownProperty ('TOSTRING');
// return false
O.HasownProperty ('HasownProperty');
// return false
ตัวอย่างที่ 3: วนซ้ำคุณสมบัติทั้งหมดของวัตถุ
ตัวอย่างต่อไปนี้แสดงให้เห็นถึงวิธีการละเว้นคุณสมบัติที่สืบทอดมาเมื่อข้ามคุณสมบัติทั้งหมดของวัตถุ โปรดทราบว่าสำหรับ .. ในลูปจะสำรวจคุณสมบัติที่ระบุได้เท่านั้นซึ่งมักจะเป็นสิ่งที่เราต้องการ นอกจากนี้ยังสามารถบรรลุข้อกำหนดที่คล้ายกันโดยตรงโดยใช้ method.getownpropertynames ()
การคัดลอกรหัสมีดังนี้:
var buz = {
หมอก: 'สแต็ก'};
สำหรับ (ชื่อ var ใน buz) {
if (buz.hasownproperty (ชื่อ)) {
การแจ้งเตือน ("นี่คือหมอก (" + ชื่อ + ") แน่นอนค่า:" + buz [ชื่อ]);
-
อื่น {
การแจ้งเตือน (ชื่อ);
// TOSTRING หรืออย่างอื่น
-
ตัวอย่างที่ 4: วิธี HasownProperty อาจถูกบล็อก
หากวัตถุมีวิธีการ HasownProperty ของตัวเองวิธีการของชื่อเดียวกันในห่วงโซ่ต้นแบบจะถูกเงา:
การคัดลอกรหัสมีดังนี้:
var foo = {
HasownProperty: function () {
กลับเท็จ;
-
บาร์: 'นี่เป็นมังกร'}; foo.hasownproperty ('bar');
// ส่งคืนเท็จเสมอ
// หากคุณกังวลเกี่ยวกับเรื่องนี้คุณสามารถใช้วิธีการ HasownProperty ของจริงโดยตรงบนห่วงโซ่ต้นแบบ
({}). hasownproperty.call (foo, 'bar');
// จริง
Object.prototype.hasownproperty.call (foo, 'bar');
// จริง
ข้างต้นเป็นเนื้อหาทั้งหมดที่อธิบายไว้ในบทความนี้ฉันหวังว่าคุณจะชอบ