افهم أولاً خصائص التعداد
بشكل عام ، استخدم ~ في اجتياز
var a = [1،2،3] ؛ for (var i in a) {console.log (a [i]) ؛} orvar o = {p1: 1 ، p2: 2} ؛ for (var i in o) {console.log (i+'='+o [i]) ؛} // p1 = 1 ؛ p2 = 2 ؛<1> لن يتم عرض جميع السمات في for ~ في اجتياز. على سبيل المثال (صفيف) سمة الطول وسمة المنشئ. وتسمى تلك الخصائص التي تم عرضها العدوى ، ويمكن تحديد الخصائص التي هي العدد من خلال طريقة propertyisenumerable () التي يوفرها كل كائن ؛
<2> سيتم أيضًا عرض كل سمة في سلسلة النموذج الأولي ، شريطة أن تكون قابلة للتعداد أو HasownProperty () لتحديد ما إذا كانت خاصية ما هي خاصية كائن أو خاصية نموذجية ؛
<3> بالنسبة لجميع خصائص النموذج الأولي ، ستعود PropertyIsEnumerable () كاذبة ، بما في ذلك تلك التي لا يمكن تعدادها في ~ في اجتياز.
مثال رمز JS
دالة الكلب (الاسم ، اللون) {this.name = name ؛ this.color = color ؛ this.somemethod = function () {return 1 ؛}} dog.prototype.price = 100 ؛ dog.prototype.rating = 3 ؛ var newdog = new dog ("doggg" ، "yellow") NewDog) {console.log (prop+'='+newDog [prop]) ؛} // name = doggg // color = yellow // somemethod = function () {return 1 ؛} // price = 100 // rating = 3newdog.hasownproperty ('name') ؛إظهار سماتها الخاصة فقط
لـ (var prop in newdog) {if (newDog.hasOwnProperty (prop)) {console.log (prop+'='+newdog [prop]) ؛}} newDog.PropertyIsenumerable ('name') ؛ // truenewdog.propertyisenumerable ('constructor') ؛ملاحظة: معظم الخصائص والأساليب المدمجة غير قابلة للتعداد.
أي سمات من سلسلة النماذج الأولية غير قابلة للشفاء
إذا كانت الدعوة إلى PropertyIsEnumerable () من كائن على سلسلة النموذج الأولي ، فإن الخصائص في هذا الكائن لا يمكن تعدادها
newdog.constructor.prototype.PropertyIsEnumerable ('Price') ؛ // trueisprototypeof (): كل كائن لديه ذلك ، يشير إلى ما إذا كان الكائن الحالي هو نموذج أولي لكائن آخر
مثال رمز JS
var monkey = {Hair: True ، Feeds: 'Bananas' ، Breates: 'Air'} ؛ function Human (name) {this.name =} human.prototype = monkey ؛ var george = new Human ('George') ؛ monkeprototypeof (george) ؛ // true = trueما سبق هو hasownproperty () ، propertyisenumerable () و isprototypeof () في JS الذي قدمه لك المحرر. آمل أن يكون ذلك مفيدًا للجميع. إذا كان لديك أي أسئلة ، فيرجى ترك رسالة لي وسوف يرد المحرر على الجميع في الوقت المناسب. شكرا جزيلا لدعمكم لموقع wulin.com!