Kaedah JavaScript Object.defineProperty () menambah atau mengubah sifat yang ada pada objek dan mengembalikan objek.
Sintaks defineProperty()kaedahnya adalah:
Object.defineProperty(obj, prop, descriptor)
Yang defineProperty()kaedah, iaitu kaedah yang statik, dipanggil menggunakan Objectnama kelas.
defineProperty () Parameter
The defineProperty()Cara mengambil masa dalam:
- obj - Objek untuk menentukan harta.
- prop - Nama atau
Symbolharta yang akan ditentukan atau diubah suai. - deskriptor - Penerangan untuk harta yang ditentukan atau diubah suai.
Deskriptor harta benda yang terdapat dalam objek terdiri daripada dua jenis: deskriptor data dan deskriptor aksesor. Mereka boleh memiliki sifat pilihan berikut.
configurableenumerable
Deskriptor data juga boleh mempunyai:
valuewritable
Penerangan aksesori juga boleh mempunyai:
getset
Nilai pulangan dari defineProperty ()
- Mengembalikan objek yang diteruskan ke fungsi.
Catatan:
- Secara lalai, nilai yang ditambah menggunakan
Object.defineProperty()tidak berubah dan tidak dapat dikira. - Jika huraian yang mempunyai kedua-
value,writable,getdansetkunci, ia dianggap sebagai penghurai data. Jika huraian yang mempunyai kedua-duavalueatauwritabledangetatausetkunci, pengecualian dibuang.
Contoh: Menambah harta data ke objek
let obj = (); // with a data property descriptor Object.defineProperty(obj, "property1", ( value: 788, writable: true, enumerable: true, configurable: true, )); console.log(obj.property1); // 788 // with an accessor property descriptor Object.defineProperty(obj, "property2", ( get() ( console.log("Getting Value… "); return val; ), set(newVal) ( console.log("Setting Value… "); val = newVal; ), enumerable: true, configurable: true, )); obj.property2 = 6969; // Setting Value… console.log(obj.property2); // 6969
Pengeluaran
788 Menetapkan Nilai… Mendapatkan Nilai… 6969
Kami tidak dapat mencampurkan kedua-dua data dan deskriptor harta benda aksesori kerana akan menimbulkan kesalahan.
Untuk mengubah properti, writableharta benda harus ada true, jika tidak, ia tidak akan mengubah dan membuang kesalahan dalam mod yang ketat.
The enumerableatribut harta mentakrifkan sama ada harta itu dipilih oleh Object.assign()atau pengendali merebak.
The configurablekawalan atribut pada masa yang sama sama ada harta itu boleh dipadamkan dari objek dan sama ada sifat-sifatnya (selain daripada valuedan writable) boleh diubah.
Bacaan yang Disyorkan: Objek Javascript defineProperties ()








