Apabila berurusan dengan objek dalam JavaScript, selalunya perlu menyemak sama ada sifat tertentu wujud. Walau bagaimanapun, jika nama sifat disimpan dalam pembolehubah, kaedah konvensional mungkin tidak berfungsi dengan berkesan.
Dalam coretan kod yang diberikan, pembangun cuba menyemak sama ada objek myObj mempunyai sifat bernama 'prop', tetapi pembolehubah myProp ditakrifkan secara salah dengan gabungan rentetan. Akibatnya, kod tersebut mencari 'myProp' harta yang tidak wujud.
Untuk menangani isu ini, beberapa pendekatan alternatif boleh digunakan:
Kaedah hasOwnProperty() mengesahkan jika sifat yang ditentukan ditakrifkan secara langsung dalam objek (tidak diwarisi daripada prototaipnya).
<code class="js">var myProp = 'prop'; if(myObj.hasOwnProperty(myProp)){ alert("yes, i have that property"); }</code>
Pengendali dalam menyemak sama ada sifat tertentu wujud dalam objek, tidak kira sama ada ia ditakrifkan secara langsung atau diwarisi.
<code class="js">var myProp = 'prop'; if(myProp in myObj){ alert("yes, i have that property"); }</code>
Jika nama hartanah diketahui dengan pasti, ia boleh disemak terus tanpa memerlukan pembolehubah.
<code class="js">if('prop' in myObj){ alert("yes, i have that property"); }</code>
Nota: The hasOwnProperty () kaedah mengabaikan sifat yang diwarisi, manakala pengendali dalam termasuk mereka. Oleh itu, pilihan pendekatan bergantung pada sama ada harta warisan adalah berkaitan dengan semakan yang dilakukan.
Atas ialah kandungan terperinci Bagaimanakah anda menyemak sama ada Harta Wujud dalam Objek Javascript dengan Nama Harta Dinamik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!