Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk Mengakses Sifat Objek Secara Dinamik dengan Pembolehubah dalam JavaScript?

Bagaimana untuk Mengakses Sifat Objek Secara Dinamik dengan Pembolehubah dalam JavaScript?

Patricia Arquette
Patricia Arquetteasal
2024-10-30 16:07:36578semak imbas

How to Dynamically Access Object Properties with Variables in JavaScript?

Akses Harta Dinamik dengan Pembolehubah dalam JavaScript

Dalam JavaScript, mengakses sifat objek secara dinamik menggunakan pembolehubah boleh menimbulkan cabaran. Mari kita pertimbangkan senario berikut:

var myObj;
myObj.prop = "exists";
var myProp = "p"+"r"+"o"+"p";

if(myObj.myProp){
    alert("yes, i have that property");
};

Dalam contoh ini, kami ingin menyemak sama ada sifat prop wujud dalam objek myObj. Walau bagaimanapun, syarat myObj.myProp dinilai kepada tidak ditentukan kerana ia sebenarnya menyemak kewujudan harta yang tidak wujud (myObj.myProp).

Untuk mengakses sifat secara dinamik dengan betul, kita boleh menggunakan teknik berikut:

1. Kaedah hasOwnProperty:

Kaedah hasOwnProperty menyemak sama ada objek mempunyai sifat tertentu dalam senarai hartanya sendiri (tidak termasuk harta warisan).

var myProp = 'prop';
if(myObj.hasOwnProperty(myProp)){
    alert("yes, i have that property");
}

2. dalam Operator:

Operator dalam menyemak sama ada objek mempunyai sifat tertentu, termasuk sifat yang diwarisi.

var myProp = 'prop';
if(myProp in myObj){
    alert("yes, i have that property");
}

3. Notasi Shorthand:

Jika nama sifat ialah literal rentetan, kita boleh menggunakan notasi trengkas:

if('prop' in myObj){
    alert("yes, i have that property");
}

Nota Penting:

  • Kaedah hasOwnProperty tidak menyemak sifat yang diwarisi, manakala pengendali dalam melakukannya.
  • Apabila menggunakan pengendali dalam, disyorkan untuk menetapkan nama sifat kepada pembolehubah terlebih dahulu untuk prestasi yang lebih baik.

Atas ialah kandungan terperinci Bagaimana untuk Mengakses Sifat Objek Secara Dinamik dengan Pembolehubah dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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