Rumah  >  Artikel  >  hujung hadapan web  >  JavaScript mengesan atribut contoh dan tip prototaip attributes_javascript

JavaScript mengesan atribut contoh dan tip prototaip attributes_javascript

WBOY
WBOYasal
2016-05-16 16:16:021034semak imbas

0. Prasyarat

Sifat objek JavaScript dibahagikan kepada dua bentuk kewujudan Satu dalam contoh, dan satu lagi dalam objek prototaip.

Mengikut perkara di atas, 4 situasi akan berlaku apabila mengesan atribut

Tidak wujud dalam contoh atau objek prototaip
Wujud dalam contoh, tidak wujud dalam objek prototaip
Tidak wujud dalam contoh, wujud dalam objek prototaip
Ia wujud dalam contoh dan dalam objek prototaip

1.hasOwnPrototype()

hasOwnPrototype() menerima nama sifat dalam format rentetan, dan jika sifat itu wujud dalam kejadian itu sendiri (kes 2/kes 4), mengembalikan benar jika tidak, mengembalikan palsu (kes 1/kes 3).

Salin kod Kod adalah seperti berikut:

functino Person() {}
Person.prototype.name = 'epal';
var person1 = new Person();
var person2 = new Person();
person1.name = 'pisang';
console.log(person1.hasOwnPrototype(name)); //true
console.log(person2.hasOwnPrototype(name)); //false

Pengendali 2.in

Operator

in akan mengembalikan benar (kes 2/kes 3/kes 4) tidak kira sama ada atribut itu wujud dalam kejadian itu sendiri atau objek prototaip jika tidak, ia akan mengembalikan palsu (kes 1).

Salin kod Kod adalah seperti berikut:

console.log('nama' secara peribadi1); //true
console.log('nama' secara peribadi2); //true

3. Kesan sifat prototaip sedia ada

Menggabungkan operator dalam dan hasOwnProperty(), anda boleh menyesuaikan fungsi untuk mengesan sama ada sifat tertentu wujud dalam prototaip.

Salin kod Kod adalah seperti berikut:

fungsi mempunyaiPrototypeProperty(objek, nama) {
Kembalikan !object.hasOwnPrototype(nama) && (nama dalam objek);
}
console.log(hasPrototypeProperty(person1, 'name')); //false
console.log(hasPrototypeProperty(person2, 'name')); //true

Jika atribut yang diberikan wujud dalam prototaip, kembalikan benar (kes 3 Jika tidak, kembalikan palsu (kes 1/kes 2/kes 4).

Di atas adalah keseluruhan kandungan artikel ini, saya harap anda semua menyukainya

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn