Javascript Object.defineProperty ()

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.

  • configurable
  • enumerable

Deskriptor data juga dapat memiliki:

  • value
  • writable

Deskriptor pengakses juga dapat memiliki:

  • get
  • set

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, getdan setkunci, diperlakukan sebagai deskriptor data. Jika deskriptor memiliki kedua valueatau writabledan getatau setkunci, 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 ()

Artikel yang menarik...