Pertama pahami sifat enum
Secara umum, gunakan untuk ~ dalam traversal
var a = [1,2,3]; untuk (var i dalam a) {console.log (a [i]);} orvar o = {p1: 1, p2: 2}; untuk (var i di o) {konsol.log (i+'='+o [i]);} // p1 = 1; p2 = 2;<1> Tidak semua atribut akan ditampilkan di for ~ di traversal. Misalnya atribut panjang (array) atribut dan konstruktor. Properti -properti yang telah ditampilkan disebut enumerables, dan properti yang enumerable dapat ditentukan oleh metode properti yang dapat disediakan oleh masing -masing objek;
<2> Setiap atribut dalam rantai prototipe juga akan ditampilkan, dengan ketentuan bahwa mereka dapat dihitung, hasownproperty () untuk menentukan apakah suatu properti adalah properti objek sendiri atau properti prototipe;
<3> Untuk semua properti prototipe, PropertyIsEnumerable () akan mengembalikan false, termasuk yang dihitung di for ~ dalam traversal.
Contoh Kode JS
Function Dog (Name, Color) {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"); untuk (var var in newDog) {console.log (prop+'='+newDog [prop]);} // name = doggg // color = yellow // somemethod = function () {return 1;} // price = 100 // rating = 3newdog.hasownproperty ('nama' '); // true; newdog.hasownproperty (' name '); // true; newdog.hasownproperty (' nama ''); // true; newdog.hasownproperty ('name'); // true; newdog.Tampilkan hanya atributnya sendiri
untuk (var prop di newDog) {if (newdog.hasownproperty (prop)) {console.log (prop+'='+newDog [prop]);}} newdog.propertyisenumerable ('name'); // truenewdog.propreSenumerable ('konstruk'); // truenewdog.propertyeSenumerable ('constructor'); // fise 'Catatan: Sebagian besar properti dan metode bawaan tidak dapat dihitung.
Atribut apa pun dari rantai prototipe juga tidak dapat dihindarkan
Jika panggilan ke PropertyIsEnumerable () berasal dari objek pada rantai prototipe, maka properti dalam objek itu dapat dihitung
newdog.constructor.prototype.propertyisenumerable ('price'); // trueisPrototypeOf (): Setiap objek memilikinya, menunjukkan apakah objek saat ini adalah prototipe objek lain
Contoh Kode JS
var monkey = {hair: true, feeds: 'pisang', bernafas: 'udara'}; function human (name) {this.name = name;} human.prototype = monyet; var George = Human baru ('George'); monkey.isprototypeof (George); // BenarDi atas adalah HasownProperty (), PropertyIseNumerable () dan IsprototypeOf () dalam JS diperkenalkan kepada Anda oleh editor. Saya harap ini akan membantu semua orang. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas semua orang tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!