JavaScript Object.assign ()

JavaScript Object.assign () yöntemi, belirli nesnelerin tüm numaralandırılabilir kendi özelliklerini tek bir nesneye kopyalar ve onu döndürür.

assign()Yöntemin sözdizimi şöyledir:

 Object.assign(target,… sources)

assign()Yöntem, statik bir yöntemle olmak kullanılarak denir Objectsınıf adını.

assign () Parametreler

assign()Yöntem alır:

  • target - Hedef nesne - değiştirildikten sonra döndürülen kaynakların özelliklerinin uygulanacağı şey.
  • kaynaklar - Kaynak nesneler - uygulamak istediğiniz özellikleri içeren nesneler.

Atamadan değer döndür ()

  • Hedef nesneyi döndürür.

Not: Hedef nesnedeki özellikler, aynı anahtara sahiplerse kaynaklardaki özellikler tarafından üzerine yazılır.

Örnek 1: Nesneleri klonlamak ve birleştirmek için Object.assign () öğesini kullanma

 // 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 )

Çıktı

 (adı: 'Alan Turing', yaş: 120) (adı: 'Alan Turing', yaş: 120) (a: 1, b: 12, c: 23)

Burada, kaynak değerin bir nesneye başvuruyorsa, yalnızca referans değerini kopyaladığını unutmayın.

Ayrıca, daha sonraki kaynakların özellikleri daha öncekilerin üzerine yazılır.

Örnek 2: Object.assign () öğesini kullanma

 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 )

Çıktı

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

Gördüğünüz gibi, prototip zincirindeki özellikler ve numaralandırılamayan özellikler kopyalanamaz.

Ayrıca, ilkel öğeler nesnelere sarılır, null ve undefined göz ardı edilir.

Yalnızca dizelerin numaralandırılabilir özelliği olduğundan, hedef nesneye kopyalanırlar.

Önerilen Kaynaklar: Javascript Object defineProperties ()

Ilginç makaleler...