// التسمم كائن // 1'bar 'في فو ؛ // truefoo.hasownproperty ('bar') ؛ // falsefoo.hasownproperty ('goo') ؛ // حقيقيهنا ، يمكن لـ HasownProperty فقط إعطاء الإجابة الصحيحة ، وهو أمر ضروري للغاية عندما يتعلق الأمر بتجاوز خصائص كائن ما. لا توجد طريقة أخرى في JavaScript لمعرفة ما إذا كان يتم تعريف السمة في الكائن نفسه أو موروثة من سلسلة النموذج الأولي.
Hasownproperty كممتلكات
لا تضع JavaScript Hasownproperty ككلمة حساسة ، مما يعني أنه يمكنك الحصول على خاصية تسمى HasownProperty. في هذا الوقت ، لم يعد بإمكانك استخدام طريقة HasownProperty الخاصة بك للحكم على الممتلكات ، لذلك تحتاج إلى استخدام طريقة HasownProperty الخارجية لإصدار الأحكام.
var foo = {hasownproperty: function () {return false ؛ } ، شريط: "هنا يكون التنين"} ؛ foo.hasownproperty ('bar') ؛ // إرجاع دائمًا FALSE // استخدم كائن آخر لـ hasownproperty ويسميه بـ "هذا" تم تعيينه إلى foo ({}). hasownproperty.call (foo ، 'bar') ؛ // true // من الممكن أيضًا استخدام Hasownproperty من الكائن // النموذج الأولي لهذا الغرض. // حقيقيلخص
عند الحكم على وجود سمة الكائن ، فإن HasownProperty هي الطريقة الوحيدة التي يمكن الاعتماد عليها. نريد أيضًا أيضًا أن نذكرك بأننا عندما نستخدم في حلقة لاجتياز الكائنات ، سيكون استخدام HasownProperty جيدًا في تجنب المشاكل الناتجة عن امتدادات كائن النموذج الأولي.
فيما يلي الإضافات من مستخدمي الإنترنت الآخرين:
يتم استخدام HasownProperty () على النموذج الأولي للكائن في JavaScript لتحديد أن خاصية محددة في الكائن نفسه بدلاً من موروثة من سلسلة النموذج الأولي.
obj.hasownproperty (Prop)
المعلمة الدعامة
يتم اكتشاف اسم سلسلة السمة أو الرمز (ES6)
o = كائن جديد () ؛ o.prop = 'موجود' ؛ o.hasownproperty ('prop') ؛ // return trueo.hasownproperty ('tostring') ؛ // return falseo.hasownproperty ('hasownproperty') ؛ // إرجاع خطأاستخدم hasownproperty كاسم خاصية لكائن
نظرًا لأن JavaScript لا يستخدم Hasownproperty ككلمة حساسة ، فمن المحتمل جدًا أن نسمي خاصية واحدة من الكائن على أنها HasownProperty ، حتى لا نتمكن من استخدام طريقة HasownProperty للنموذج الأولي لتحديد ما إذا كانت الخاصية من سلسلة النموذج الأولي.
var foo = {hasownproperty: function () {return false ؛ } ، شريط: "هنا يكون التنين"} ؛ foo.hasownproperty ('bar') ؛ // ارجع دائمًا كاذبةكيفية حل هذه المشكلة من خلال عدم استخدام هذا الكائن. نحتاج إلى استخدام طريقة HasOwnproperty الحقيقية على سلسلة النموذج الأولي:
({}). hasownproperty.call (foo ، 'bar') ؛ // true // or: object.prototype.hasownproperty.call (foo ، 'bar') ؛ // حقيقيالمرجع: https://developer.mozilla.org/zh-cn/docs/web/javascript/reference/global_objects/object/hasownproperty