Object

Đối tượng Object trong JavaScript là lớp cơ sở cho tất cả các đối tượng trong JavaScript. Điều này có nghĩa là tất cả các đối tượng trong JavaScript đều được tạo ra từ đối tượng Object. Đối tượng Object chủ yếu được sử dụng để đóng gói dữ liệu bất kỳ thành dạng đối tượng.

Một đối tượng cũng có thể được coi là một tập hợp không có thứ tự của các thuộc tính, mỗi thuộc tính là một cặp tên-giá trị. Tên thuộc tính là một chuỗi, vì vậy chúng ta có thể coi đối tượng là một ánh xạ từ chuỗi đến giá trị.

Cú pháp

Hàm tạo

new Object([value]);

Hàm chuyển đổi kiểu đối tượng

Object([value]);
Tham sốMô tảKiểu dữ liệu
valueGiá trị cần đóng gói thành đối tượngbất kỳ

Object() sẽ trả về một đối tượng có kiểu tương ứng với kiểu dữ liệu của tham số value:

  • Nếu value là kiểu dữ liệu nguyên thủy Boolean, Number, String, thì sẽ trả về đối tượng tương ứng, ví dụ: đối tượng Boolean, đối tượng Number, đối tượng String.
  • Nếu value đã là một đối tượng, thì không thay đổi gì và trả về đối tượng đó.
  • Nếu bỏ qua tham số value, hoặc valuenull, undefined, thì sẽ trả về đối tượng Object không có thuộc tính nào.

Object() trả về một đối tượng có kiểu tương ứng với giá trị đã cho. Đối tượng này bao gồm giá trị đã cho.

Hàm tạo

Thuộc tính

  • Object.length: Giá trị là 1
  • Object.prototype: Đại diện cho đối tượng nguyên mẫu của Object

Phương thức

  • Object.is: So sánh hai giá trị xem chúng có giống nhau không
  • Object.assign: Tạo một đối tượng mới bằng cách sao chép một hoặc nhiều thuộc tính có thể liệt kê từ các đối tượng khác nhau
  • Object.create: Tạo một đối tượng mới với đối tượng nguyên mẫu và thuộc tính đã cho
  • Object.keys: Lấy một mảng chứa tên các thuộc tính có thể liệt kê của đối tượng đã cho
  • Object.values: Trả về một mảng chứa tất cả các giá trị thuộc tính có thể liệt kê của đối tượng đã cho
  • Object.entries: Lấy một mảng hai chiều chứa các cặp khóa-giá trị của các thuộc tính có thể liệt kê của đối tượng đã cho
  • Object.defineProperties: Định nghĩa nhiều thuộc tính cho đối tượng đã cho và chỉ định các mô tả thuộc tính cho chúng
  • Object.defineProperty: Định nghĩa một thuộc tính cho đối tượng đã cho và chỉ định mô tả thuộc tính cho nó
  • Object.getOwnPropertyNames: Lấy một mảng chứa tên các thuộc tính riêng của đối tượng đã cho (bao gồm các thuộc tính không thể liệt kê nhưng không bao gồm các thuộc tính có tên là Symbol)
  • Object.getOwnPropertySymbols: Lấy một mảng chứa tất cả các thuộc tính riêng có tên là Symbol của đối tượng đã cho
  • Object.getOwnPropertyDescriptor: Lấy mô tả thuộc tính của một thuộc tính riêng của đối tượng đã cho
  • Object.getOwnPropertyDescriptors: Lấy các mô tả thuộc tính của đối tượng đã cho
  • Object.isExtensible: Kiểm tra xem đối tượng đã cho có thể mở rộng được hay không
  • Object.isFrozen: Kiểm tra xem đối tượng đã cho có bị đóng băng hay không
  • Object.isSealed: Kiểm tra xem đối tượng đã cho có bị niêm phong hay không
  • Object.preventExtensions: Đánh dấu đối tượng đã cho là không thể mở rộng
  • Object.freeze: Đánh dấu đối tượng đã cho là bị đóng băng
  • Object.seal: Đánh dấu đối tượng đã cho là bị niêm phong
  • Object.getPrototypeOf: Lấy đối tượng nguyên mẫu của đối tượng đã cho
  • Object.setPrototypeOf: Đặt đối tượng nguyên mẫu cho đối tượng đã cho

Đối tượng nguyên mẫu

Tất cả các đối tượng trong JavaScript đều được tạo ra từ Object và kế thừa các phương thức và thuộc tính từ Object.prototype, mặc dù chúng có thể bị ghi đè.

Thuộc tính

  • Object.prototype.constructor: Trả về tham chiếu tới hàm tạo Object để tạo ra đối tượng. Lưu ý, giá trị của thuộc tính này là một tham chiếu đến chính hàm, không phải là một chuỗi chứa tên hàm. Giá trị này là một kiểu nguyên thủy chỉ đọc, như 1, true, 'test'.
  • Object.prototype.__proto__: Trỏ đến đối tượng được sử dụng làm nguyên mẫu khi đối tượng được khởi tạo.
  • Object.prototype.__noSuchMethod__: Cho phép định nghĩa và thực thi một hàm khi một thành viên của đối tượng không được xác định được gọi như một phương thức.

Phương thức

Ví dụ

Nếu tham số là kiểu dữ liệu nguyên thủy, thì trả về đối tượng tương ứng.

const a = new Object(true);
console.log(a);
// Boolean {true}
 
var b = new Object(8);
console.log(b);
// Number {8}
 
var c = new Object('string');
console.log(c);
// String {"string"}

Nếu tham số đã là một đối tượng (typeof của tham số trả về object hoặc function), thì không có thay đổi nào và trả về đối tượng đó.

var a = new Object(Boolean());
console.log(a);
// Boolean{false}
 
var b = new Object(Number());
console.log(b);
// Number{0}
 
var c = new Object(String());
console.log(c);
// String{"", length: 0}

Nếu không chỉ định tham số, hoặc tham số là null hoặc undefined, thì trả về một đối tượng trống.

var a = new Object();
console.log(a);
// {}
 
var b = new Object(undefined);
console.log(b);
// {}
 
var c = new Object(null);
console.log(c);
// {}