მეთოდი Object.assign

Object.assign მეთოდი აკოპირებს წყაროს ობიექტის თვისებებს და მნიშვნელობებს, აბრუნებს ახალ ობიექტს. მეთოდის პირველ პარამეტრში ჩვენ ვანიჭებთ სამიზნე ობიექტს, რომელშიც ვაკოპირებთ, ხოლო მეორეში - მივუთითებთ ობიექტებს, რომლების კოპირებაც საჭიროა.

სინტაქსი

javascriptObject.assign(სად ვაკოპიროთ, ობიექტები);

მაგალითი

მოდით მივიღოთ ახალი ობიექტი წყაროდან:

javascriptlet obj = {'a': 1, 'b': 2, 'c': 3};
let newObj = Object.assign({}, obj);
console.log(newObj);

კოდის შესრულების შედეგი:

javascript{a: 1, b: 2, c: 3}

მაგალითი

ახლა კი მივიღოთ ახალი ობიექტი რამდენიმე წყაროდან, პარამეტრში მათი მძიმით გამოყოფით:

javascriptlet obj1 = {'a': 1, 'b': 2};
let obj2 = {'c': 3, 'd': 4};

let newObj = Object.assign({}, obj1, obj2);
console.log(newObj);

კოდის შესრულების შემდეგ ჩვენ ვნახავთ, რომ ორი წყაროს ობიექტი გაერთიანდა ერთ ახალ ობიექტში:

javascript{a: 1, b: 2, c: 3, d: 4}

მაგალითი

ასევე Object.assign მეთოდი შეიძლება გამოვიყენოთ ახალი მასივის მისაღებად, რადგან მასივი თავისი ტიპით ასევე ეკუთვნის ობიექტებს. მოდით შევქმნათ ახალი მასივი, ელემენტების წყაროდან კოპირებით:

javascriptlet arr = [1, 2, 3, 4];
let newArr = Object.assign([], arr);

console.log(newArr);

კოდის შესრულების შედეგი:

javascript[1, 2, 3, 4]

მაგალითი

Object.assign მეთოდის გამოყენებისას სინტაქსის დაცვა საჭიროა. მაგალითად, თუ პირველ პარამეტრში არ დავამატებთ სამიზნე ობიექტს, არამედ დავტოვებთ მხოლოდ კოპირებად ობიექტს, მაშინ ის უბრალოდ დააბრუნებს იგივე ობიექტს:

javascriptlet obj = {1:'a', 2: 'b', 3: 'c'};
let newObj = Object.assign(obj);

console.log(newObj === obj);

კოდის შესრულების შედეგი:

javascripttrue

ასევე იხილეთ

  • მეთოდი Object.keys,
    რომელიც აბრუნებს ობიექტის თვისებების მასივს
  • მეთოდი Object.values,
    რომელიც აბრუნებს ობიექტის მნიშვნელობების მასივს