Temui cara untuk Semak Sifat Objek
Jika anda memprogram dalam JavaScript, anda mungkin terjumpa situasi di mana anda perlu mengetahui sama ada sifat tertentu wujud dalam objek, dan di situlah operator masuk masuk. Saya akan menunjukkan kepada anda cara ia berfungsi, cara menggunakannya dan sebab ia boleh menjadi lebih cekap daripada cara lain untuk menyemak sifat pada objek.
Pengendali dalam digunakan dalam JavaScript untuk menyemak sama ada sifat wujud pada objek. Perkara yang menarik ialah ia bukan sahaja menyemak sifat yang ditakrifkan secara langsung dalam objek, tetapi juga sifat yang diwarisi daripada prototaip.
Sintaksnya sangat mudah:
'propriedade' in objeto;
Jika harta itu wujud, ia kembali benar dan jika ia tidak wujud, palsu. Nampak simple kan? Tetapi kegunaannya melangkaui pemeriksaan mudah. Adakah anda ingin melihat beberapa contoh?
Sebagai permulaan, mari lihat contoh asas menggunakan operator dalam untuk menyemak sifat langsung.
const carro = { marca: 'Toyota', ano: 2020 }; console.log('marca' in carro); // true console.log('modelo' in carro); // false
Di sini, kami mempunyai objek kereta dengan ciri jenama dan tahun. Apabila kita menggunakan 'jenama' dalam kereta, hasilnya adalah benar, kerana sifat jenama wujud secara langsung dalam objek. 'model' dalam carro mengembalikan palsu, kerana sifat ini belum ditentukan.
Semakan jenis ini bagus untuk mengelakkan ralat semasa cuba mengakses sifat yang tidak wujud. Pernah cuba mengakses harta yang tidak wujud dan memecahkan kod tersebut? saya sudah! ?
Sekarang, lihat bagaimana operator dalam juga mengesan sifat yang diwarisi daripada prototaip
const pessoa = { nome: 'Ana' }; console.log('toString' in pessoa); // true
Dalam kes ini, objek orang tidak mempunyai sifat toString secara langsung, tetapi fungsi ini diwarisi daripada Object.prototype. Operator dalam boleh melihat ini dan mengembalikan benar.
Kadangkala anda mungkin ingin menyemak sama ada sebarang fungsi yang diwarisi tersedia dalam objek. Ini boleh menjimatkan anda dalam beberapa situasi yang lebih kompleks.
Sekarang mari kita buat perbandingan dengan cara lain untuk menyemak sifat, kaedah hasOwnProperty. Ia hanya menyemak sama ada harta itu ditakrifkan secara langsung pada objek, mengabaikan yang diwarisi.
const pessoa = { nome: 'Ana' }; console.log(pessoa.hasOwnProperty('toString')); // false console.log('toString' in pessoa); // true
Kaedah hasOwnProperty mengembalikan palsu untuk toString, kerana sifat ini tidak langsung pada objek orang. Sementara itu, operator dalam mengembalikan benar, kerana ia juga mempertimbangkan harta warisan.
Jawapannya paling banyak diperkatakan apabila bertanyakan apa-apa kepada pembangun kanan, ia bergantung.
Atas ialah kandungan terperinci Menguasai atau Operator dalam tiada JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!