Cara Mentakrifkan Nama Harta Objek Secara Dinamik dalam JavaScript
Tersurat objek JavaScript mudah untuk menentukan koleksi pasangan nilai kunci, di mana kunci mewakili nama harta dan nilai mewakili nilai harta. Walau bagaimanapun, persoalan biasa timbul: bolehkah kita menggunakan pembolehubah sebagai kunci dalam literal objek?
Jawapan kepada soalan ini bergantung pada versi JavaScript. Dalam ES5 dan lebih awal, menggunakan pembolehubah secara langsung sebagai kunci dalam literal objek tidak akan berfungsi. Contohnya:
var thetop = 'top'; something.stop().animate({ thetop: 10 }, 10); // Doesn't work
Ini kerana dalam ES5, nama sifat objek mesti disertakan dalam petikan berganda atau petikan tunggal.
Penyelesaian untuk ES5 dan Terdahulu
Untuk menggunakan pembolehubah sebagai kunci dalam ES5, anda perlu mencipta objek literal dan menetapkan nilai sifat secara manual menggunakan pembolehubah nama sebagai kunci sifat:
var aniArgs = {}; aniArgs[thetop] = 10; // Assign value to property using variable name as key something.stop().animate(aniArgs, 10); // Pass the object literal to the animate method
Nama Harta Berkomputer ES6
ES6 memperkenalkan konsep ComputedPropertyName, yang membenarkan penggunaan pembolehubah dan ungkapan sebagai nama sifat di dalam literal objek. Sintaks ini kelihatan seperti:
const obj = { [variableOrExpression]: value };
Menggunakan sintaks ini, anda boleh mentakrifkan nama sifat secara dinamik menggunakan pembolehubah, contohnya:
var thetop = 'top'; const obj = { [thetop]: 10 }; console.log(obj.top); // Prints 10
Sintaks ini disokong dalam penyemak imbas moden dan boleh memudahkan proses mentakrifkan nama sifat objek secara dinamik.
Atas ialah kandungan terperinci Bolehkah saya Menggunakan Pembolehubah sebagai Nama Harta Objek dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!