Objek Javascript.defineProperty ()

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.

  • configurable
  • enumerable

Deskriptor data juga boleh mempunyai:

  • value
  • writable

Penerangan aksesori juga boleh mempunyai:

  • get
  • set

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, getdan setkunci, ia dianggap sebagai penghurai data. Jika huraian yang mempunyai kedua-dua valueatau writabledan getatau setkunci, 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 ()

Artikel menarik...