JavaScript Object.assign ()

Metode JavaScript Object.assign () menyalin semua properti enumerable sendiri dari objek yang diberikan ke satu objek dan mengembalikannya.

Sintaks dari assign()metode ini adalah:

 Object.assign(target,… sources)

The assign()metode, menjadi metode statis, disebut menggunakan Objectnama kelas.

assign () Parameter

The assign()Metode mengambil di:

  • target - Objek target - untuk apa menerapkan properti sumber, yang dikembalikan setelah diubah.
  • sources - The source object (s) - objek yang berisi properti yang ingin Anda terapkan.

Kembalikan nilai dari assign ()

  • Mengembalikan objek target.

Catatan: Properti di objek target ditimpa oleh properti di sumber jika memiliki kunci yang sama.

Contoh 1: Menggunakan Object.assign () untuk mengkloning & menggabungkan objek

 // cloning objects const obj = ( name: "Alan Turing", age: 120, ); let newObject = (); const copy = Object.assign(newObject, obj); // modifies the target object console.log(newObject); // returns the modified object console.log(copy); // merging objects const o1 = ( a: 1, b: 2, c: 3 ); const o2 = ( b: 12, c: 13 ); const o3 = ( c: 23 ); // Earlier source keys are overwritten by later sources const o4 = Object.assign((), o1, o2, o3); console.log(o4); // ( a: 1, b: 12, c: 23 )

Keluaran

 (nama: 'Alan Turing', usia: 120) (nama: 'Alan Turing', usia: 120) (a: 1, b: 12, c: 23)

Perhatikan di sini bahwa jika nilai sumber adalah referensi ke suatu objek, itu hanya menyalin nilai referensi.

Selain itu, properti sumber selanjutnya menimpa yang sebelumnya.

Contoh 2: Menggunakan Object.assign ()

 const obj = Object.create( ( a: 1 ), ( // a is on obj's prototype chain. b: ( value: 2, // b is a non-enumerable property. ), c: ( value: 3, enumerable: true, // c is an own enumerable property. ), ) ); let copy = Object.assign((), obj); console.log(copy); // ( c: 3 ) copy = Object.assign(copy, "abc", 100, null); console.log(copy); // ( '0': 'a', '1': 'b', '2': 'c', c: 3 )

Keluaran

 (c: 3) ('0': 'a', '1': 'b', '2': 'c', c: 3)

Seperti yang Anda lihat, properti pada rantai prototipe dan properti yang tidak dapat dihitung tidak dapat disalin.

Selain itu, primitif akan digabungkan ke objek, null dan undefined akan diabaikan.

Karena hanya string yang memiliki properti enumerable, string tersebut disalin ke objek target.

Bacaan yang Disarankan: Objek Javascript defineProperties ()

Artikel yang menarik...