- vừa được xem lúc

Chi tiết về Object​.assign()

0 0 32

Người đăng: Nguyễn Văn Hưng B

Theo Viblo Asia

Khi chúng ta làm việc với Js, cụ thể ơn là ReactJs, hẳn chúng ta đã nghe tới tính bất biến của dữ liệu (immutability). Hiểu một cách nôm na đó là khả năng giá trị của dữ liệu không bị thay đổi sau khi đã được khai báo. Tính bất biết còn làm tăng hiệu suất của ứng dụng, khả năng kiểm soát và debugg một cách nhanh chóng hơn.

Để hiểu rõ hơn chúng ta sẽ cùng nhau tìm hiểu về cú pháp và thông qua các ví dụ để có thể nắm rõ được ưu điểm này của nó và cách sử dụng.

Khái niệm

Object.assign() được sử dụng để sao chép các giá trị của tất cả thuộc tính có thể liệt kê từ một hoặc nhiều đối tượng nguồn đến một đối tượng đích. Nó sẽ trả về đối tượng đích đó.

Cú pháp

Object.assign(target, ...sources)

Các tham số:

  • targer: Đối tượng đích
  • sources: Các đối tượng nguồn

Giá trị trả về: Các đối tượng đích

Các thuộc tính trong đối tượng đích sẽ bị ghi lại bởi các thuộc tính trong đối tượng nguồn nếu chúng có cùng key. Tương tự, các thuộc tính nguồn sau sẽ ghi đè lên những thuộc tính nguồn trước.

Ví dụ:

var obj = { a: 1 };
var copy = Object.assign({}, obj);
console.log(copy); // { a: 1 }

Cần lưu ý để đảm bảo tính bất biến thì tham số target nên luôn là {}, vì khi đó các giá trị của sources sẽ được sao chép vào đối tượng mới. Một cách dùng sai là:

const a = { name: 'foo' }
const b = Object.assign(a, { name: 'bar', age: 1 }, { id: 9 })
console.log(b) // { name: 'bar', age: 1, id: 9 }
console.log(a) // Giá trị của a cũng bị thay đổi thành { name: 'bar', age: 1, id: 9 }
console.log(a === b) // true

Khi làm việc với nhiều object:

let o1 = { a: 21 };
let o2 = { b: 22 };
let o3 = { c: 24 }; const obj = Object.assign({},o1, o2, o3);
console.log(obj); //{a: 21, b: 22, c: 24}

Gộp các object với cùng properties:

let o1 = { a: 21, b: 22, c: 24 };
let o2 = { b: 25, c: 26 };
let o3 = { c: 27 }; let finalObj = Object.assign({}, o1, o2, o3);
console.log(finalObj);//{a: 21, b: 25, c: 27}

Để ý ví dụ trên, các thuộc tính được lặp lại bên trong các đối tượng nguồn thì trong đối tượng mới, các thuộc tính đó sẽ bị bỏ qua và chúng chỉ nhận được các thuộc tính duy nhất trên đối tượng đích. Và giá trị của chúng sẽ được cập nhật giá trị mới từ trái sang phải.

Trên đây là bài tìm hiểu của mình về Object.assign() trong JS. Hi vọng bài viết sẽ giúp bạn có một cái nhìn và cách sử dụng rõ hơn về một phương thức thường xuyên được sử dụng dạo gần đây, đặc biệt là trong ReactJs.

Tham khảo

https://appdividend.com/2018/12/27/javascript-object-assign-example-object-assign-tutorial/ https://developer.mozilla.org/vi/docs/Web/JavaScript/Reference/Global_Objects/Object/assign https://appdividend.com/2018/12/27/javascript-object-assign-example-object-assign-tutorial/

Bình luận

Bài viết tương tự

- vừa được xem lúc

Giới thiệu Typescript - Sự khác nhau giữa Typescript và Javascript

Typescript là gì. TypeScript là một ngôn ngữ giúp cung cấp quy mô lớn hơn so với JavaScript.

0 0 499

- vừa được xem lúc

Cài đặt WSL / WSL2 trên Windows 10 để code như trên Ubuntu

Sau vài ba năm mình chuyển qua code trên Ubuntu thì thật không thể phủ nhận rằng mình đã yêu em nó. Cá nhân mình sử dụng Ubuntu để code web thì thật là tuyệt vời.

0 0 374

- vừa được xem lúc

Đặt tên commit message sao cho "tình nghĩa anh em chắc chắn bền lâu"????

. Lời mở đầu. .

1 1 701

- vừa được xem lúc

Tìm hiểu về Resource Controller trong Laravel

Giới thiệu. Trong laravel, việc sử dụng các route post, get, group để gọi đến 1 action của Controller đã là quá quen đối với các bạn sử dụng framework này.

0 0 335

- vừa được xem lúc

Phân quyền đơn giản với package Laravel permission

Như các bạn đã biết, phân quyền trong một ứng dụng là một phần không thể thiếu trong việc phát triển phần mềm, dù đó là ứng dụng web hay là mobile. Vậy nên, hôm nay mình sẽ giới thiệu một package có thể giúp các bạn phân quyền nhanh và đơn giản trong một website được viết bằng PHP với framework là L

0 0 420

- vừa được xem lúc

Bạn đã biết các tips này khi làm việc với chuỗi trong JavaScript chưa ?

Hi xin chào các bạn, tiếp tục chuỗi chủ đề về cái thằng JavaScript này, hôm nay mình sẽ giới thiệu cho các bạn một số thủ thuật hay ho khi làm việc với chuỗi trong JavaScript có thể bạn đã hoặc chưa từng dùng. Cụ thể như nào thì hãy cùng mình tìm hiểu trong bài viết này nhé (go).

0 0 414