Ikhtisar
Kaedah
hasOwnProperty() digunakan untuk menentukan sama ada sesuatu objek mengandungi harta sendiri yang ditentukan.
Tatabahasa
obj.hasOwnProperty(prop)
Parameter
•prop
•Nama atribut untuk dikesan.
Penerangan
Semua objek yang mewarisi Object.prototype akan mewarisi kaedah hasOwnProperty daripada rantaian prototaip Kaedah ini boleh digunakan untuk mengesan sama ada objek mengandungi sifat sendiri yang khusus, kaedah ini akan mengabaikan ciri-ciri dari prototaip diwarisi dari sanad.
Contoh
Contoh 1: Gunakan kaedah hasOwnProperty untuk menentukan sama ada objek mengandungi sifat sendiri yang khusus
Contoh berikut menyemak sama ada objek o mengandungi prop atributnya sendiri:
o = Objek baharu();o.prop = 'wujud';perubahan fungsiO() {
o.newprop = o.prop;
padamkan o.prop;}o.hasOwnProperty('prop');
// Kembalikan benar
changeO();
o.hasOwnProperty('prop');
// Kembalikan palsu
Contoh 2: Perbezaan antara harta sendiri dan harta warisan
Contoh berikut menunjukkan perbezaan antara rawatan kaedah hasOwnProperty terhadap hartanya sendiri dan harta warisan:
o = new Object();o.prop = 'wujud';o.hasOwnProperty('prop');
// Kembalikan benar
o.hasOwnProperty('toString');
// Kembalikan palsu
o.hasOwnProperty('hasOwnProperty');
// Kembalikan palsu
Contoh 3: Melintasi semua sifat diri objek
Contoh berikut menunjukkan cara untuk mengabaikan sifat yang diwarisi apabila merentasi semua sifat objek di sini hanya akan melintasi sifat yang boleh dikira Ini biasanya yang kita mahukan secara langsung. kaedah juga boleh mencapai keperluan yang sama.
Salin kod
untuk (nama var dalam buz) {
Jika (buz.hasOwnProperty(nama)) {
alert("ini adalah kabus (" nama ") pastinya. Nilai: " buz[nama]);
}
lain {
makluman(nama);
// toString atau sesuatu yang lain
}}
Contoh 4: kaedah hasOwnProperty mungkin dikaburkan
Jika objek mempunyai kaedah hasOwnProperty sendiri, kaedah dengan nama yang sama pada rantai prototaip akan dibayangi:
Salin kod
kembali palsu;
},
bar: 'Inilah naga'};foo.hasOwnProperty('bar');
// sentiasa mengembalikan palsu
// Jika anda bimbang tentang situasi ini, anda boleh terus menggunakan kaedah hasOwnProperty sebenar pada rantai prototaip
({}).hasOwnProperty.call(foo, 'bar');
// benar
Object.prototype.hasOwnProperty.call(foo, 'bar');
// benar
Di atas adalah semua kandungan yang diterangkan dalam artikel ini, saya harap anda semua menyukainya.