Trong JavaScript, đối tượng (object) là một kiểu dữ liệu cơ bản và rất linh hoạt. Có nhiều phương thức được sử dụng để thao tác và xử lý đối tượng. Dưới đây là một số phương thức phổ biến để làm việc với đối tượng trong JavaScript.
1. Object.keys()
Phương thức này trả về một mảng chứa tất cả các khóa (key) của đối tượng.
Ví dụ:
const person = {
name: 'John',
age: 30,
city: 'New York'
};
const keys = Object.keys(person);
console.log(keys); // ["name", "age", "city"]
2. Object.values()
Phương thức này trả về một mảng chứa tất cả các giá trị (value) của đối tượng.
Ví dụ:
const person = {
name: 'John',
age: 30,
city: 'New York'
};
const values = Object.values(person);
console.log(values); // ["John", 30, "New York"]
3. Object.entries()
Phương thức này trả về một mảng các cặp [key, value] của đối tượng.
Ví dụ:
const person = {
name: 'John',
age: 30,
city: 'New York'
};
const entries = Object.entries(person);
console.log(entries); // [["name", "John"], ["age", 30], ["city", "New York"]]
4. Object.assign()
Phương thức này được sử dụng để sao chép các giá trị của tất cả cá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.
Ví dụ:
const target = { a: 1, b: 2 };
const source = { b: 4, c: 5 };
const result = Object.assign(target, source);
console.log(result); // { a: 1, b: 4, c: 5 }
console.log(target); // { a: 1, b: 4, c: 5 }
5. Object.freeze()
Phương thức này đóng băng một đối tượng, ngăn không cho thay đổi bất kỳ thuộc tính nào của đối tượng đó.
Ví dụ:
const person = {
name: 'John',
age: 30
};
Object.freeze(person);
person.age = 31; // Không thay đổi được
console.log(person.age); // 30
6. Object.seal()
Phương thức này bịt kín một đối tượng, ngăn không cho thêm hoặc xóa thuộc tính khỏi đối tượng, nhưng vẫn cho phép thay đổi các thuộc tính hiện có.
Ví dụ:
const person = {
name: 'John',
age: 30
};
Object.seal(person);
person.age = 31; // Thay đổi được
delete person.name; // Không xóa được
console.log(person); // { name: "John", age: 31 }
7. Object.getPrototypeOf()
Phương thức này trả về prototype của đối tượng được chỉ định.
Ví dụ:
function Person(name) {
this.name = name;
}
const john = new Person('John');
console.log(Object.getPrototypeOf(john)); // Person {}
8. Object.setPrototypeOf()
Phương thức này đặt prototype (còn được gọi là [[Prototype]]) của một đối tượng được chỉ định thành một đối tượng khác hoặc null
.
Ví dụ:
const person = {
greet: function() {
console.log('Hello');
}
};
const student = {
study: function() {
console.log('Studying');
}
};
Object.setPrototypeOf(student, person);
student.greet(); // Hello
9. Object.create()
Phương thức này tạo một đối tượng mới, sử dụng một đối tượng hiện có làm prototype của đối tượng mới.
Ví dụ:
const person = {
greet: function() {
console.log('Hello');
}
};
const john = Object.create(person);
john.greet(); // Hello
10. Object.defineProperty()
Phương thức này định nghĩa một thuộc tính mới trực tiếp trên một đối tượng, hoặc sửa đổi một thuộc tính hiện có của đối tượng đó, và trả về đối tượng đó.
Ví dụ:
const person = {};
Object.defineProperty(person, 'name', {
value: 'John',
writable: true,
enumerable: true,
configurable: true
});
console.log(person.name); // John
Kết luận
Các phương thức xử lý đối tượng trong JavaScript cung cấp nhiều công cụ mạnh mẽ để thao tác và quản lý đối tượng. Hiểu rõ và sử dụng các phương thức này sẽ giúp bạn làm việc hiệu quả hơn với đối tượng trong JavaScript.
Comments