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

Ví dụ về phương thức đối tượng JavaScript từ cơ bản đến nâng cao

0 0 3

Người đăng: Thái Thịnh

Theo Viblo Asia

JavaScript cung cấp một loạt các phương thức đối tượng mạnh mẽ giúp thao tác và quản lý dữ liệu hiệu quả. Bài viết này sẽ đi sâu vào chi tiết từng phương thức, từ những thao tác cơ bản như lấy key và value đến các kỹ thuật nâng cao như định nghĩa và kiểm soát thuộc tính.

1. Object.keys(obj):

Trả về một mảng các tên thuộc tính có thể liệt kê được của đối tượng (khóa).

const obj = { a: 1, b: 2, c: 3 };
console.log(Object.keys(obj));
// Output: ['a', 'b', 'c']

2. Object.values(obj):

Trả về một mảng các giá trị thuộc tính có thể liệt kê của đối tượng.

const obj = { a: 1, b: 2, c: 3 };
console.log(Object.values(obj));
// Output: [1, 2, 3]

3. Object.entries(obj):

Trả về một mảng các cặp thuộc tính [key, value] có thể liệt kê được theo chuỗi của đối tượng.

const obj = { a: 1, b: 2, c: 3 };
console.log(Object.entries(obj));
// Output: [['a', 1], ['b', 2], ['c', 3]]

4. Object.isSealed(obj):

Trả về true nếu đối tượng được niêm phong, nếu không thì trả về false.

const obj = Object.seal({ a: 1 });
console.log(Object.isSealed(obj));
// Output: true

5. Object.assign(target, source):

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. Nó trả về đối tượng đích.

const target = { a: 1 };
const source = { b: 2, c: 3 };
const result = Object.assign(target, source);
console.log(result);
// Output: { a: 1, b: 2, c: 3 }

6. Object.freeze(obj):

Đóng băng một đối tượng, ngăn chặn việc thêm thuộc tính mới hoặc xóa hoặc cấu hình lại các thuộc tính hiện có.

const obj = { name: 'Khabib' };
Object.freeze(obj);
obj.name = 'Bob'; // This won't change the value
console.log(obj.name); // Output: 'Khabib'

7. Object.seal(obj):

Niêm phong một đối tượng, ngăn chặn việc thêm các thuộc tính mới nhưng cho phép sửa đổi các thuộc tính hiện có.

const obj = { name: 'Alice' };
Object.seal(obj);
obj.name = 'Bob'; // This will update the value
obj.age = 25; // This won't add a new property
console.log(obj); // Output: { name: 'Bob' }

8. Object.create(proto):

Tạo một đối tượng mới với đối tượng nguyên mẫu và các thuộc tính được chỉ định.

const person = {greet() {console.log('Hello!');}};
const student = Object.create(person);
student.greet();
// Output: 'Hello!'

9. Object.defineProperty(obj, prop, descriptor):

Xác định thuộc tính mới trực tiếp trên đối tượng hoặc sửa đổi thuộc tính hiện có.

const obj = {};
Object.defineProperty(obj, 'name', {
value: 'Alice',
writable: false });
console.log(obj.name); // 'Alice'

10. Object.defineProperties(obj, props):

Xác định nhiều thuộc tính mới hoặc sửa đổi các thuộc tính hiện có trên một đối tượng.

const obj = {};
Object.defineProperties(obj, {
name: { value: 'Cormier', writable: false },
age: { value: 30, writable: true } });
console.log(obj.name); // 'Cormier'

11. Object.isExtensible(obj):

Xác định xem một đối tượng có thể mở rộng hay không (tức là có thể thêm thuộc tính mới hay không).

const obj = {};
console.log(Object.isExtensible(obj)); // true
Object.preventExtensions(obj);
console.log(Object.isExtensible(obj)); // false

12. Object.isFrozen(obj):

Xác định xem một đối tượng có bị đóng băng hay không (tức là không thể mở rộng và tất cả các thuộc tính đều không thể ghi).

const obj = Object.freeze({ name: 'Gregor' });
console.log(Object.isFrozen(obj));
// output: true

13. Object.hasOwn(obj, prop):

Trả về true nếu đối tượng được chỉ định có thuộc tính được chỉ định làm thuộc tính riêng của nó, ngay cả khi giá trị của thuộc tính đó không được xác định.

const obj = { name: 'Alice' };
console.log(Object.hasOwn(obj, 'name')); // true
console.log(Object.hasOwn(obj, 'age')); // false

14. Object.hasOwnProperty(prop):

Xác định xem một đối tượng có chứa thuộc tính được chỉ định dưới dạng thuộc tính trực tiếp của đối tượng đó hay không và không được kế thừa thông qua chuỗi nguyên mẫu.

const obj = { name: 'Alice' };
console.log(obj.hasOwnProperty('name')); // true
console.log(obj.hasOwnProperty('age')); // false

15. Object.preventExtensions(obj):

Ngăn không cho các thuộc tính mới được thêm vào đối tượng.

const obj = {};
Object.preventExtensions(obj);
obj.name = 'Khabib'; // Won't be added
console.log(obj); // {}

16. Object.setPrototypeOf(obj, proto):

Đặt nguyên mẫu (thuộc tính [[Prototype]] bên trong) của một đối tượng được chỉ định.

const proto = { greet() {console.log('Hello!');}};
const obj = {};
Object.setPrototypeOf(obj, proto);
obj.greet(); // 'Hello!'

17. Object.fromEntries(iterable):

Chuyển đổi danh sách các cặp khóa-giá trị thành một đối tượng.

const entries = [['name', 'Rock'], ['age', 35]];
const obj = Object.fromEntries(entries);
console.log(obj); // { name: 'Rock', age: 35 }

18. Object.getPrototypeOf(obj):

Trả về nguyên mẫu (thuộc tính [[Prototype]] bên trong) của đối tượng được chỉ định.

const obj = {};
const proto = Object.getPrototypeOf(obj);
console.log(proto === Object.prototype); // true

19. Object.getOwnPropertySymbols(obj):

Trả về một mảng chứa tất cả các thuộc tính ký hiệu được tìm thấy trên đối tượng.

const symbol = Symbol('id');
const obj = { [symbol]: 123 };
const symbols = Object.getOwnPropertySymbols(obj);
console.log(symbols); // [Symbol(id)]
console.log(obj[symbols[0]]); // 123

20. Object.getOwnPropertyDescriptor(obj, prop):

Trả về mô tả thuộc tính cho một thuộc tính cụ thể của một đối tượng nhất định.

const obj = { name: 'Alice', age: 26 };
const descriptor = Object.getOwnPropertyDescriptor(obj, 'name');
console.log(descriptor);
// Output: { configurable: true, enumerable: true, value: "Alice", writable: true }

21. Object.getOwnPropertyNames(obj):

Trả về một mảng chứa tất cả các thuộc tính được tìm thấy trên đối tượng (bao gồm cả các thuộc tính không thể liệt kê).

const obj = { name: 'Ferguson', age: 30 };
const propertyNames = Object.getOwnPropertyNames(obj);
console.log(propertyNames); // ['name', 'age']

22. Object.is(value1, value2):

So sánh xem hai giá trị có giống nhau không.

console.log(Object.is('foo', 'foo')); // true
console.log(Object.is({}, {})); // false

23. Object.getOwnPropertyDescriptors(obj):

Trả về tất cả các mô tả thuộc tính riêng của một đối tượng.

const obj = { name: 'Khabib', age: 28 };
const descriptors = Object.getOwnPropertyDescriptors(obj);
console.log(descriptors);
// Output: {
age: {
configurable: true,
enumerable: true,
value: 28,
writable: true },
name: { configurable: true, enumerable: true, value: "Khabib", writable: true }
}

Hy vọng các bạn thấy thông tin trong bài là hữu ích.

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 528

- 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 436

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

Một số phương thức với object trong Javascript

Trong Javascript có hỗ trợ các loại dữ liệu cơ bản là giống với hầu hết những ngôn ngữ lập trình khác. Bài viết này mình sẽ giới thiệu về Object và một số phương thức thường dùng với nó.

0 0 158

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

Tìm hiểu về thư viện axios

Giới thiệu. Axios là gì? Axios là một thư viện HTTP Client dựa trên Promise.

0 0 149

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

Imports và Exports trong JavaScript ES6

. Giới thiệu. ES6 cung cấp cho chúng ta import (nhập), export (xuất) các functions, biến từ module này sang module khác và sử dụng nó trong các file khác.

0 0 113

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

Bài toán đọc số thành chữ (phần 2) - Hoàn chỉnh chương trình dưới 100 dòng code

Tiếp tục bài viết còn dang dở ở phần trước Phân tích bài toán đọc số thành chữ (phần 1) - Phân tích đề và những mảnh ghép đầu tiên. Bạn nào chưa đọc thì có thể xem ở link trên trước nhé.

0 0 249