Các phương thức của Object trong JavaScript
Javascript nâng cao | by
Trong JavaScript, Object là một trong những kiểu dữ liệu quan trọng và được sử dụng phổ biến nhất. Để làm việc với Object hiệu quả, JavaScript cung cấp nhiều phương thức tích hợp giúp thao tác, truy vấn, bảo vệ và mở rộng Object một cách linh hoạt.
Việc nắm vững các phương thức này không chỉ giúp lập trình viên viết mã ngắn gọn, tối ưu mà còn cải thiện hiệu suất của ứng dụng. Trong bài viết này, chúng ta sẽ cùng tìm hiểu các phương thức quan trọng của Object trong JavaScript và cách chúng được áp dụng trong thực tế.
Nhóm phương thức thao tác với Object trong JavaScript
Nhóm phương thức này cho phép chúng ta sao chép, tạo mới, hoặc chỉnh sửa các thuộc tính trong một object. Đây là những phương thức quan trọng giúp thao tác với object một cách linh hoạt và tối ưu hơn.
Object.assign(target, ...sources)
Phương thức Object.assign()
được sử dụng để sao chép thuộc tính từ một hoặc nhiều object source vào object target.
Cách hoạt động:
-
Sao chép các thuộc tính liệt kê được (enumerable) từ các object nguồn (sources) vào object đích (target).
-
Nếu các thuộc tính trùng nhau, giá trị của thuộc tính sẽ bị ghi đè theo thứ tự của source.
-
Chỉ sao chép giá trị, không sao chép prototype hoặc thuộc tính không liệt kê được.
Ví dụ sử dụng:
const obj1 = { a: 1, b: 2 }; const obj2 = { b: 3, c: 4 }; const result = Object.assign({}, obj1, obj2); console.log(result); // { a: 1, b: 3, c: 4 }
-
Sao chép và hợp nhất object.
-
Tạo một bản sao nông (shallow copy) của object.
Object.create(proto, propertiesObject)
Phương thức Object.create()
được sử dụng để tạo một object mới với một object khác làm prototype.
Cách hoạt động:
-
Nếu truyền
null
, object mới sẽ không có prototype. -
Nếu truyền một object
proto
, object mới sẽ kế thừa từ prototype đó. -
Có thể thêm các thuộc tính ban đầu bằng
propertiesObject
.
Ví dụ sử dụng:
const personProto = { greet() { console.log(`Hello, my name is ${this.name}`); } }; const person = Object.create(personProto); person.name = "Alice"; person.greet(); // Hello, my name is Alice