Metode JavaScript Object.defineProperty () menambah atau mengubah properti yang ada pada sebuah objek dan mengembalikan objek tersebut.
Sintaks dari defineProperty()metode ini adalah:
Object.defineProperty(obj, prop, descriptor)
The defineProperty()metode, menjadi metode statis, disebut menggunakan Objectnama kelas.
DefineProperty () Parameters
The defineProperty()Metode mengambil di:
- obj - Objek yang akan digunakan untuk mendefinisikan properti.
- prop - Nama atau
Symbolproperti yang akan didefinisikan atau dimodifikasi. - deskriptor - Deskriptor untuk properti yang sedang ditentukan atau dimodifikasi.
Deskriptor properti yang ada dalam objek terdiri dari dua jenis: deskriptor data dan deskriptor pengakses. Mereka dapat memiliki properti opsional berikut.
configurableenumerable
Deskriptor data juga dapat memiliki:
valuewritable
Deskriptor pengakses juga dapat memiliki:
getset
Kembalikan nilai dari defineProperty ()
- Mengembalikan objek yang diteruskan ke fungsi.
catatan:
- Secara default, nilai yang ditambahkan menggunakan
Object.defineProperty()tidak dapat diubah dan tidak dapat dihitung. - Jika descriptor memiliki satu pun dari
value,writable,getdansetkunci, diperlakukan sebagai deskriptor data. Jika deskriptor memiliki keduavalueatauwritabledangetatausetkunci, pengecualian akan muncul.
Contoh: Menambahkan properti 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
Keluaran
788 Menetapkan Nilai… Mendapatkan Nilai… 6969
Kami tidak dapat mencampur data dan deskriptor properti pengakses karena akan menimbulkan kesalahan.
Untuk memodifikasi properti, properti objek writableharuslah true, jika tidak maka tidak akan mengubah dan memunculkan kesalahan dalam mode ketat.
The enumerableAtribut properti mendefinisikan apakah properti diambil oleh Object.assign()atau menyebar operator.
The configurablekontrol atribut pada saat yang sama apakah properti dapat dihapus dari objek dan apakah atributnya (selain valuedan writable) dapat diubah.
Bacaan yang Disarankan: Objek Javascript defineProperties ()








