يتم توفير كلا الخصائين بواسطة Object.prototype: object.prototype.hasownproperty () و Object.Protype.ispropertyof ()
اشرح أولاً طريقة HasownProperty () والاستخدام. اشرح طريقة ispropertyof () والاستخدام
فهم هذه على الأقل يجب أن تفهم سلسلة النموذج الأولي
1. Object.Protype.hasownproperty ()
ملخص
يتم استخدام طريقة HasownProperty () لتحديد ما إذا كان كائن يحتوي على خاصية محددة
قواعد
obj.hasownproperty ("اسم الخاصية") ؛ // ما إذا كان المثيل OBJ يحتوي على الخصائص بين قوسين ، إذا كان هذا صحيحًا ، وإلا فهو خطأ
يصف
سيتم مورث جميع الكائنات التي وراثة كائن. تكتشف هذه الطريقة ما إذا كان الكائن يحتوي على خاصية معينة. على عكس هذه الطريقة ، ستتجاهل هذه الطريقة الخصائص الموروثة من سلسلة النموذج الأولي.
مثال
1. استخدم طريقة HasownProperty () لتحديد ما إذا كان كائن يحتوي على خاصية محددة
يكتشف المثال التالي ما إذا كان الكائن O يحتوي على دعامة السمة الخاصة به:
var o = new Object () ؛ o.prop = "موجود" ؛ تغيير الوظيفة () {O.NewProp = O.Prop ؛ حذف O.Prop ؛} O.HasownProperty ("prop") // truechang2. الفرق بين سماتك والسمات الموروثة
توضح الأعمدة التالية الفرق بين طريقة HasownProperty () تعامل خصائصها وخصائصها الموروثة.
var o = new Object () ؛ o.prop = "موجود" ؛ o.hasownproperty ("prop") ؛ // صحيح سماتها الخاصة O.HasownProperty ("tostring") ؛3. بعد تعديل سلسلة النموذج الأولي ، فإن مثال التأشير على HasownProperty () هو
توضح الأعمدة التالية الفرق بين طريقة HasownProperty () في خصائص الميراث بعد تعديل سلسلة النموذج الأولي.
var o = {name: 'jim'} ؛ function person () {this.age = 19 ؛} person.prototype = o ؛ // تعديل النموذج الأولي للشخص للإشارة إلى p.hasownproperty ("الاسم") ؛4. استخدم Hasownproperty () لاجتياز خصائص كائن نفسه
توضح الأعمدة التالية كيفية تجاهل السمات الموروثة أثناء عبور كائن والحصول على سماته الخاصة.
ملاحظة ・ سوف يعبر Forin الخصائص التعويضية في ميراث الكائن
var o = {gender: 'ma'} function person () {this.name = "zhang san" ؛ this.age = 19 ؛ الخصائص في مكان آخر: "+K) ؛ // الجنس}}5. قد يتم كتابة طريقة Hasownproperty
إذا كان للكائن طريقة HasOwNproperty () ، فسيتم كتابة طريقة HasownProperty () على سلسلة النموذج الأولي
var o = {الجنس: 'male' ، hasownproperty: function () {return false ؛}} o.hasownproperty ("الجنس") ؛ // إرجاع خطأ إذا لم تكتب أي شيء // طريقة الحل ، استخدم طريقة الاتصال ({}).2. object.prototype.isprototypeof ()
ملخص
اختبار iSprotypeof () يختبر ما إذا كان هناك كائن على سلسلة النموذج الأولي لكائن آخر
قواعد
// هل الكائن 1 هو النموذج الأولي للكائن 2؟ وهذا يعني ، Object2 هو النموذج الأولي للكائن 1. إذا كان الأمر كذلك ، فإنه يعيد صحيحًا ، وإلا FALSEOBJECT1.ISPROTOTYOF (Object2) ؛
يصف
تتيح لك طريقة iSprototypeof () التحقق مما إذا كان هناك كائن على سلسلة النموذج الأولي لكائن آخر.
مثال
1. استخدم isprototypeof () للتحقق مما إذا كان هناك كائن على النموذج الأولي لكائن آخر
var o = {} ؛ function person () {} ؛ var p1 = شخص جديد () ؛ // الموروث من النموذج الأولي الأصلي ، ولكن الآن من المستحيل الوصول إلى الشخص. console.log (O.Isprotypeof (p2)) ؛ // true هو o نموذج أولي لـ p22. استخدم isPropertyof () للتحقق مما إذا كان هناك كائن على سلسلة النموذج الأولي لكائن آخر
var o = {} ؛ function person () {} ؛ var p1 = new person () ؛ // الموروثة من النموذج الأولي الأصلي ، ولكن الآن من المستحيل الوصول إلى الشخص. console.log (o.isprototypeof (p2)) ؛ // true o هو النموذج الأولي لـ p2 console.log (object.prototype.isprototypeof (p1))بنية سلسلة النموذج الأولي لـ p1 هي p1 => الشخص الأصلي.
بنية سلسلة النموذج الأولي لـ p2 هي p2 => o => object.prototype => null
يحتوي كل من p1 و p2 على كائن.
3. ملخص
1. hasownproperty: يتم استخدامه لتحديد ما إذا كان للكائن خاصية أو كائن أعطيته الاسم. ومع ذلك ، تجدر الإشارة إلى أن هذه الطريقة لا يمكنها التحقق مما إذا كانت سلسلة النموذج الأولي للكائن تحتوي على هذه الخاصية ، والتي يجب أن تكون عضوًا في الكائن نفسه.
2. يتم استخدام النموذج isProtypeof لتحديد ما إذا كان الكائن للتحقق مما إذا كانت سلسلة النموذج الأولي موجودة في مثيل الكائن المحدد. إذا كان الأمر كذلك ، فإنه يعود صحيحًا ، وإلا فإنه يعود خطأ.
ما ورد أعلاه هو شرح مفصل لأمثلة السمة HasOwnproperty () و ISPrototypeOOF () في JS التي قدمها لك المحرر. آمل أن يكون ذلك مفيدًا لك. إذا كان لديك أي أسئلة ، فيرجى ترك رسالة لي وسوف يرد المحرر إليك في الوقت المناسب. شكرا جزيلا لدعمكم لموقع wulin.com!