Kedua properti disediakan oleh Object.prototype: object.prototype.hasownproperty () dan object.prototype.ispropertyof ()
Pertama -tama jelaskan metode dan penggunaan hasownproperty (). Jelaskan metode dan penggunaan ispropertyof ()
Pahami ini setidaknya Anda harus memahami rantai prototipe
1. Object.prototype.hasownproperty ()
Ringkasan
Metode hasownproperty () digunakan untuk menentukan apakah suatu objek berisi properti yang ditentukan
tata bahasa
obj.hasownproperty ("nama properti"); // Apakah instance OBJ berisi properti dalam tanda kurung, jika itu benar, jika tidak itu salah
menggambarkan
Semua objek yang mewarisi objek.Prototype akan diwarisi dari rantai prototipe ke metode HasownProperty. Metode ini mendeteksi apakah suatu objek berisi properti tertentu. Tidak seperti di, metode ini akan mengabaikan properti yang diwarisi dari rantai prototipe.
Contoh
1. Gunakan metode hasownproperty () untuk menentukan apakah suatu objek berisi properti tertentu
Contoh berikut mendeteksi apakah objek O berisi prop atributnya sendiri:
var o = objek baru (); o.prop = "exist"; function change () {o.newprop = o.prop; hapus o.prop;} o.hasownproperty ("prop") // truechange () dan hapus prop properti dari o.hasownproperty ("")//false false // afters) afterse -hasownproperty ("" ")/false false/fooce afters) afters o.hasownproperty (" "")/false false/false/false) afters o.hasownproperty ("" ")/false false/false/the fooce tidak ada2. Perbedaan antara atribut Anda sendiri dan atribut yang diwariskan
Kolom berikut menunjukkan perbedaan antara metode HasownProperty () memperlakukan sifatnya sendiri dan sifat yang diwariskan.
var o =new Object();o.prop="exists";o.hasOwnProperty("prop");//true Its own attributes o.hasOwnProperty("toString");//false Methods inherited from the Object prototype o.hasOwnProperty("hasOwnProperty");//false Methods inherited from the Object prototype3. Setelah memodifikasi rantai prototipe, contoh penunjuk hasownproperty () adalah
Kolom berikut menunjukkan perbedaan antara metode HasownProperty () dalam sifat warisan setelah memodifikasi rantai prototipe.
var o = {name: 'jim'}; function person () {this.age = 19;} person.prototype = o; // memodifikasi prototipe orang untuk menunjuk ke p.hasownproperty ("name"); // false tidak dapat menilai nama yang diwariskan p.hasownproperty ("usia"); // true;4. Gunakan hasownproperty () untuk melintasi sifat -sifat suatu objek itu sendiri
Kolom berikut menunjukkan cara mengabaikan atribut yang diwariskan saat melintasi objek dan mendapatkan atributnya sendiri.
CATATAN ・ Forin akan melintasi sifat yang dapat dihindarkan dalam warisan objek
var o = {gender: 'ma'} function person () {this.name = "zhang san"; this.age = 19;} person.prototype = o; var p = orang baru (); untuk (var k in p) {if (p.hasownproperty (k)) {console.log ("asli properti:"+k) {console {console {console {console {console {console {console {console ("console { di tempat lain: "+k); // jenis kelamin}}5. Metode HasownProperty mungkin ditimpa
Jika suatu objek memiliki metode HasownProperty () sendiri, metode HasownProperty () pada rantai prototipe akan ditimpa
var o = {gender: 'jantan', hasownproperty: function () {return false;}} o.hasownproperty ("gender"); // return false jika Anda tidak menulis apa pun // metode solusi, gunakan panggilan Metode ({}). HasownProperty.call (o, 'gender'); // trueObject.prototype.hasownproperty.call (o, 'gender'); // true2. Object.prototype.isprototypeOf ()
Ringkasan
metode isprototypeof () menguji apakah ada objek pada rantai prototipe objek lain
tata bahasa
// Apakah Object1 adalah prototipe Object2? Dengan kata lain, Object2 adalah prototipe Object1. Jika ya, itu mengembalikan true, jika tidak falseObject1.isprototypeOf (Object2);
menggambarkan
Metode isPrototypeOf () memungkinkan Anda untuk memeriksa apakah suatu objek ada pada rantai prototipe objek lain.
Contoh
1. Gunakan isPrototypeOf () untuk memeriksa apakah ada objek pada prototipe objek lain
var o={};function Person(){};var p1 =new Person();//Inherited from the original prototype, but now it is impossible to access Person.prototype=o;var p2 =new Person();//Inherited from oconsole.log(o.isPrototypeOf(p1));//false is o a prototype of p1 console.log (o.isprototypeof (p2)); // true adalah prototipe p22. Gunakan isPropertyof () untuk memeriksa apakah ada objek yang ada pada rantai prototipe objek lain
var o={};function Person(){};var p1 =new Person();//Inherited from the original prototype, but now it is impossible to access Person.prototype=o;var p2 =new Person();//Inherited from oconsole.log(o.isPrototypeOf(p1));//false o is the prototype of p1 console.log (o.isprototypeOf (p2)); // true o adalah prototipe p2 console.log (objek.prototype.isprototypeof (p1)); // trueConsole.log (objek.prototype.isprototypeOf (p2)); // trueconsolStruktur rantai prototipe p1 adalah p1 => orang asli.prototype => object.prototype => null
Struktur rantai prototipe p2 adalah p2 => o => objek.prototype => null
Baik P1 dan P2 memiliki objek.prototype sehingga keduanya berada pada rantai prototipe objek.prototype
3. Ringkasan
1.hasownproperty: digunakan untuk menentukan apakah suatu objek memiliki properti atau objek yang Anda berikan namanya. Namun, perlu dicatat bahwa metode ini tidak dapat memeriksa apakah rantai prototipe objek memiliki properti ini, yang harus menjadi anggota objek itu sendiri.
2. IsprototypeOf digunakan untuk menentukan apakah objek untuk memeriksa apakah rantai prototipe ada dalam instance objek yang ditentukan. Jika ya, ia kembali benar, jika tidak ia mengembalikan false.
Di atas adalah penjelasan terperinci dari HasownProperty () dan isprototypeof () contoh atribut dalam JS yang diperkenalkan kepada Anda oleh editor. Saya harap ini akan membantu Anda. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas Anda tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!