Target: Nama atribut JS dapat digunakan dengan variabel
Sebagai contoh: objek objek JS, saat menetapkan atribut ke objek, metode berikut dapat digunakan
Salinan kode adalah sebagai berikut:
objek var;
objek.prop1 = "value1";
object.prop2 = "value2";
Metode berikut juga dapat digunakan:
Salinan kode adalah sebagai berikut:
object.push ({prop1: "value1"});
object.push ({prop2: "value2"});
Di sini, Prop1 dapat digunakan sebagai nama atribut, atau kutipan dapat ditambahkan, misalnya:
Salinan kode adalah sebagai berikut:
object.push ({"<span style =" font-family: Arial, helvetica, sans-serif; "> prop1 </span>": "value1"});
Makna ekspresi adalah sama, yaitu, prop1 hanya dapat diakui sebagai konstan, dan bahkan jika itu adalah variabel, itu tidak berguna, misalnya:
Salinan kode adalah sebagai berikut:
var prop1 = "prop2";
object.push ({prop1: "<span style =" font-family: arial, helvetica, sans-serif; "> value1 </span>"});
Apa yang terjadi jika Anda mengakses Prop2 melalui objek seperti ini? Misalnya:
Salinan kode adalah sebagai berikut:
Peringatan (<span style = "FONT-FAMILY: Arial, Helvetica, Sans-Serif;"> Object.prop2) </span>
Tak perlu ditanyakan, tentu saja itu tidak terdefinisi, tetapi mengakses objek.prop1 adalah "value1"
Alasan telah disebutkan. Terlepas dari apakah tanda kutip ditambahkan atau tidak, atribut diperlakukan sebagai konstanta. Izinkan saya memberi Anda contoh lain:
Salinan kode adalah sebagai berikut:
var arr = [];
arr ['js'] = 'jQuery';
arr ['css'] = 'oocss';
var obj = {};
untuk (var i in arr)
{
obj.i = arr [i];
}
waspada (obj.js);
Pembaca bertanya -tanya apa yang akan dicetak?
Tentu saja itu tidak terdefinisi.
Harap tebak lagi, apa yang akan dicetak jika waspada (obj.i)?
Tentu saja itu OOCSS, mengapa? Karena OBJ sekarang hanya memiliki satu atribut I, dan melalui dua loop, bagian depan obj.i ditimpa oleh bagian belakang.
Jika ada persyaratan, Anda perlu menambahkan atribut secara dinamis, yaitu atribut harus berupa variabel. Seperti pada kode contoh di atas, peringatan (obj.js) tidak ditentukan, tetapi jQuery. Bagaimana cara memodifikasinya?
Salinan kode adalah sebagai berikut:
var arr = [];
arr ['js'] = 'jQuery';
arr ['css'] = 'oocss';
var obj = {};
untuk (var i in arr)
{
obj [i] = arr [i];
}
waspada (obj.js);
Sesederhana itu! Perlakukan objek OBJ sebagai array, dan mendukung menggunakan metode yang mirip dengan subskrip untuk menetapkan atribut dan atribut nilai ke objek. Namun, objek masih menjadi objek, dan obj.length tidak ada.