Phương thức
3 trả về một mảng của các giá trị thuộc tính có thể suy giảm của một đối tượng đã cho, theo cùng thứ tự như được quy định bởi vòng lặp const myHonda = {
color: "red",
wheels: 4,
engine: { cylinders: 4, size: 2.2 },
};
4. [Sự khác biệt duy nhất là một vòng const myHonda = {
color: "red",
wheels: 4,
engine: { cylinders: 4, size: 2.2 },
};
4 cũng liệt kê các thuộc tính trong chuỗi nguyên mẫu.]const myHonda = {
color: "red",
wheels: 4,
engine: { cylinders: 4, size: 2.2 },
};
3 method returns an array of a given object's own enumerable property values, in the same order as that provided by a const myHonda = {
color: "red",
wheels: 4,
engine: { cylinders: 4, size: 2.2 },
};
4 loop. [The only difference is that a const myHonda = {
color: "red",
wheels: 4,
engine: { cylinders: 4, size: 2.2 },
};
4 loop enumerates properties in the prototype chain as well.] const myHonda = {
color: "red",
wheels: 4,
engine: { cylinders: 4, size: 2.2 },
};
Thử nó
Cú pháp
Thông số
const myHonda = {
color: "red",
wheels: 4,
engine: { cylinders: 4, size: 2.2 },
};
6Đối tượng có giá trị tài sản riêng được trả lại.
Giá trị trả về
Một mảng chứa các giá trị thuộc tính có thể suy giảm của đối tượng.
Sự mô tả
const myHonda = {
color: "red",
wheels: 4,
engine: { cylinders: 4, size: 2.2 },
};
3 Trả về một mảng có các phần tử là các giá trị thuộc tính có thể tìm thấy trên đối tượng. Thứ tự của các thuộc tính giống như được đưa ra bằng cách lặp qua các giá trị thuộc tính của đối tượng theo cách thủ công.Ví dụ
Sử dụng Object.values
const obj = { foo: 'bar', baz: 42 };
console.log[Object.values[obj]]; // ['bar', 42]
// Array-like object
const arrayLikeObj1 = { 0: 'a', 1: 'b', 2: 'c' };
console.log[Object.values[arrayLikeObj1 ]]; // ['a', 'b', 'c']
// Array-like object with random key ordering
// When using numeric keys, the values are returned in the keys' numerical order
const arrayLikeObj2 = { 100: 'a', 2: 'b', 7: 'c' };
console.log[Object.values[arrayLikeObj2 ]]; // ['b', 'c', 'a']
// getFoo is property which isn't enumerable
const myObj = Object.create[{}, { getFoo: { value[] { return this.foo; } } }];
myObj.foo = 'bar';
console.log[Object.values[myObj]]; // ['bar']
// non-object argument will be coerced to an object
console.log[Object.values['foo']]; // ['f', 'o', 'o']
Thông số kỹ thuật
Đặc tả ngôn ngữ Ecmascript # sec-object.values # sec-object.values |
Tính tương thích của trình duyệt web
Bảng BCD chỉ tải trong trình duyệt
Xem thêm
JavaScript được thiết kế trên một mô hình dựa trên đối tượng đơn giản. Một đối tượng là một tập hợp các thuộc tính và một thuộc tính là một liên kết giữa một tên [hoặc khóa] và một giá trị. Giá trị của một thuộc tính có thể là một hàm, trong trường hợp thuộc tính được gọi là phương thức. Các đối tượng trong JavaScript, giống như trong nhiều ngôn ngữ lập trình khác, có thể được so sánh với các đối tượng trong cuộc sống thực. Trong JavaScript, một đối tượng là một thực thể độc lập, với các thuộc tính và loại. So sánh nó với một cốc, ví dụ. Một cốc là một đối tượng, với các thuộc tính. Một cốc có màu, thiết kế, trọng lượng, một vật liệu được làm bằng, v.v ... Theo cùng một cách, các đối tượng JavaScript có thể có các thuộc tính, xác định các đặc điểm của chúng. Ngoài các đối tượng được xác định trước trong trình duyệt, bạn có thể xác định các đối tượng của riêng mình. Chương này mô tả cách sử dụng các đối tượng, thuộc tính và phương thức và cách tạo các đối tượng của riêng bạn. Bạn có thể tạo một đối tượng bằng Trình khởi tạo đối tượng. Ngoài ra, trước tiên bạn có thể tạo hàm tạo hàm và sau đó khởi tạo một đối tượng bằng cách gọi hàm đó với toán tử Tạo các đối tượng mới
8.const myHonda = {
color: "red",
wheels: 4,
engine: { cylinders: 4, size: 2.2 },
};
Sử dụng các bộ khởi tạo đối tượng
Bộ khởi tạo đối tượng cũng được gọi là chữ cái. "Bộ khởi tạo đối tượng" phù hợp với thuật ngữ được sử dụng bởi C ++。
Cú pháp cho một đối tượng sử dụng Trình khởi tạo đối tượng là:
const obj = {
property1: value1, // property name may be an identifier
2: value2, // or a number
"property n": value3, // or a string
};
Mỗi tên thuộc tính trước khi phối hợp là một định danh [tên, một số hoặc một chuỗi theo nghĩa đen] và mỗi
const myHonda = {
color: "red",
wheels: 4,
engine: { cylinders: 4, size: 2.2 },
};
9 là một biểu thức có giá trị được gán cho tên thuộc tính. Tên tài sản cũng có thể là một biểu thức; Các phím tính toán cần được bọc trong ngoặc vuông. Tham chiếu khởi tạo đối tượng chứa một lời giải thích chi tiết hơn về cú pháp.Trong ví dụ này, đối tượng mới được tạo được gán cho một biến
const myHonda = {
color: "red",
wheels: 4,
engine: { cylinders: 4, size: 2.2 },
};
6 - đây là tùy chọn. Nếu bạn không cần phải tham khảo đối tượng này ở nơi khác, bạn không cần phải gán nó cho một biến. .Bộ khởi tạo đối tượng là các biểu thức và mỗi trình khởi tạo đối tượng dẫn đến một đối tượng mới được tạo bất cứ khi nào câu lệnh xuất hiện được thực thi. Bộ khởi tạo đối tượng giống hệt nhau tạo ra các đối tượng riêng biệt không so sánh với nhau như nhau.
Câu lệnh sau tạo một đối tượng và gán nó cho biến
function Car[make, model, year] {
this.make = make;
this.model = model;
this.year = year;
}
1 khi và chỉ khi biểu thức function Car[make, model, year] {
this.make = make;
this.model = model;
this.year = year;
}
2 là đúng:let x;
if [cond] {
x = { greeting: "hi there" };
}
Ví dụ sau đây tạo ra
function Car[make, model, year] {
this.make = make;
this.model = model;
this.year = year;
}
3 với ba thuộc tính. Lưu ý rằng thuộc tính function Car[make, model, year] {
this.make = make;
this.model = model;
this.year = year;
}
4 cũng là một đối tượng có thuộc tính riêng của nó.const myHonda = {
color: "red",
wheels: 4,
engine: { cylinders: 4, size: 2.2 },
};
Các đối tượng được tạo bằng các bộ khởi tạo được gọi là đối tượng đơn giản, bởi vì chúng là các trường hợp của
function Car[make, model, year] {
this.make = make;
this.model = model;
this.year = year;
}
5, nhưng không phải bất kỳ loại đối tượng nào khác. Một số loại đối tượng có cú pháp khởi tạo đặc biệt - ví dụ, các bộ khởi tạo mảng và chữ Regex.Sử dụng hàm tạo hàm
Ngoài ra, bạn có thể tạo một đối tượng với hai bước sau:
- Xác định loại đối tượng bằng cách viết hàm tạo hàm. Có một quy ước mạnh mẽ, với lý do chính đáng, để sử dụng một lá thư ban đầu vốn.
- Tạo một thể hiện của đối tượng với
8.const myHonda = { color: "red", wheels: 4, engine: { cylinders: 4, size: 2.2 }, };
Để xác định loại đối tượng, hãy tạo một hàm cho loại đối tượng chỉ định tên, thuộc tính và phương thức của nó. Ví dụ: giả sử bạn muốn tạo một loại đối tượng cho xe hơi. Bạn muốn loại đối tượng này được gọi là
function Car[make, model, year] {
this.make = make;
this.model = model;
this.year = year;
}
7 và bạn muốn nó có thuộc tính để tạo, mô hình và năm. Để làm điều này, bạn sẽ viết chức năng sau:function Car[make, model, year] {
this.make = make;
this.model = model;
this.year = year;
}
Lưu ý rằng việc sử dụng
function Car[make, model, year] {
this.make = make;
this.model = model;
this.year = year;
}
8 để gán các giá trị cho các thuộc tính của đối tượng dựa trên các giá trị được truyền cho hàm.Bây giờ bạn có thể tạo một đối tượng được gọi là
function Car[make, model, year] {
this.make = make;
this.model = model;
this.year = year;
}
9 như sau:const myCar = new Car["Eagle", "Talon TSi", 1993];
Câu lệnh này tạo ra
function Car[make, model, year] {
this.make = make;
this.model = model;
this.year = year;
}
9 và gán nó các giá trị được chỉ định cho các thuộc tính của nó. Sau đó, giá trị của const myCar = new Car["Eagle", "Talon TSi", 1993];
1 là chuỗi const myCar = new Car["Eagle", "Talon TSi", 1993];
2, const myCar = new Car["Eagle", "Talon TSi", 1993];
3 là chuỗi const myCar = new Car["Eagle", "Talon TSi", 1993];
4, const myCar = new Car["Eagle", "Talon TSi", 1993];
5 là số nguyên const myCar = new Car["Eagle", "Talon TSi", 1993];
6, v.v. Thứ tự của các đối số và tham số nên giống nhau.Bạn có thể tạo bất kỳ số lượng đối tượng
function Car[make, model, year] {
this.make = make;
this.model = model;
this.year = year;
}
7 bằng các cuộc gọi đến const myHonda = {
color: "red",
wheels: 4,
engine: { cylinders: 4, size: 2.2 },
};
8. Ví dụ,const kenscar = new Car["Nissan", "300ZX", 1992];
const vpgscar = new Car["Mazda", "Miata", 1990];
Một đối tượng có thể có một thuộc tính tự nó là một đối tượng khác. Ví dụ: giả sử bạn xác định một đối tượng được gọi là
const myCar = new Car["Eagle", "Talon TSi", 1993];
9 như sau:function Person[name, age, sex] {
this.name = name;
this.age = age;
this.sex = sex;
}
và sau đó khởi tạo hai đối tượng
const myCar = new Car["Eagle", "Talon TSi", 1993];
9 mới như sau:const rand = new Person["Rand McKinnon", 33, "M"];
const ken = new Person["Ken Jones", 39, "M"];
Sau đó, bạn có thể viết lại định nghĩa của
function Car[make, model, year] {
this.make = make;
this.model = model;
this.year = year;
}
7 để bao gồm một thuộc tính const kenscar = new Car["Nissan", "300ZX", 1992];
const vpgscar = new Car["Mazda", "Miata", 1990];
2 có đối tượng const myCar = new Car["Eagle", "Talon TSi", 1993];
9, như sau:function Car[make, model, year, owner] {
this.make = make;
this.model = model;
this.year = year;
this.owner = owner;
}
Để khởi tạo các đối tượng mới, sau đó bạn sử dụng các đối tượng sau:
const obj = {
property1: value1, // property name may be an identifier
2: value2, // or a number
"property n": value3, // or a string
};
0Lưu ý rằng thay vì truyền một chuỗi theo nghĩa đen hoặc giá trị số nguyên khi tạo các đối tượng mới, các câu lệnh trên truyền các đối tượng
const kenscar = new Car["Nissan", "300ZX", 1992];
const vpgscar = new Car["Mazda", "Miata", 1990];
4 và const kenscar = new Car["Nissan", "300ZX", 1992];
const vpgscar = new Car["Mazda", "Miata", 1990];
5 làm đối số cho chủ sở hữu. Sau đó, nếu bạn muốn tìm ra tên của chủ sở hữu của const kenscar = new Car["Nissan", "300ZX", 1992];
const vpgscar = new Car["Mazda", "Miata", 1990];
6, bạn có thể truy cập thuộc tính sau:Bạn luôn có thể thêm một thuộc tính vào một đối tượng được xác định trước đó. Ví dụ: tuyên bố
Thêm một thuộc tính
const kenscar = new Car["Nissan", "300ZX", 1992];
const vpgscar = new Car["Mazda", "Miata", 1990];
7 vào const kenscar = new Car["Nissan", "300ZX", 1992];
const vpgscar = new Car["Mazda", "Miata", 1990];
8 và gán cho nó một giá trị là const kenscar = new Car["Nissan", "300ZX", 1992];
const vpgscar = new Car["Mazda", "Miata", 1990];
9. Tuy nhiên, điều này không ảnh hưởng đến bất kỳ đối tượng nào khác. Để thêm thuộc tính mới vào tất cả các đối tượng cùng loại, bạn phải thêm thuộc tính vào định nghĩa của loại đối tượng function Car[make, model, year] {
this.make = make;
this.model = model;
this.year = year;
}
7.Bạn cũng có thể sử dụng cú pháp
function Person[name, age, sex] {
this.name = name;
this.age = age;
this.sex = sex;
}
1 thay vì cú pháp ____72 để xác định hàm tạo hàm. Để biết thêm thông tin, xem hướng dẫn lớp.Sử dụng phương thức đối tượng.create []
Các đối tượng cũng có thể được tạo bằng phương pháp
function Person[name, age, sex] {
this.name = name;
this.age = age;
this.sex = sex;
}
3. Phương pháp này có thể rất hữu ích, bởi vì nó cho phép bạn chọn đối tượng nguyên mẫu cho đối tượng bạn muốn tạo, mà không phải xác định hàm tạo hàm.const obj = {
property1: value1, // property name may be an identifier
2: value2, // or a number
"property n": value3, // or a string
};
1Đối tượng và thuộc tính
Một đối tượng JavaScript có các thuộc tính liên quan đến nó. Các thuộc tính đối tượng về cơ bản giống như các biến, ngoại trừ chúng được liên kết với các đối tượng, không phải phạm vi. Các thuộc tính của một đối tượng xác định các đặc điểm của đối tượng.
Ví dụ, ví dụ này tạo ra một đối tượng có tên
function Car[make, model, year] {
this.make = make;
this.model = model;
this.year = year;
}
9, với các thuộc tính có tên function Person[name, age, sex] {
this.name = name;
this.age = age;
this.sex = sex;
}
5, function Person[name, age, sex] {
this.name = name;
this.age = age;
this.sex = sex;
}
6 và function Person[name, age, sex] {
this.name = name;
this.age = age;
this.sex = sex;
}
7, với các giá trị của chúng được đặt thành function Person[name, age, sex] {
this.name = name;
this.age = age;
this.sex = sex;
}
8, function Person[name, age, sex] {
this.name = name;
this.age = age;
this.sex = sex;
}
9 và const rand = new Person["Rand McKinnon", 33, "M"];
const ken = new Person["Ken Jones", 39, "M"];
0:const obj = {
property1: value1, // property name may be an identifier
2: value2, // or a number
"property n": value3, // or a string
};
2Giống như các biến JavaScript, tên thuộc tính nhạy cảm. Tên thuộc tính chỉ có thể là chuỗi hoặc ký hiệu - tất cả các khóa được chuyển đổi thành chuỗi trừ khi chúng là ký hiệu. Trên thực tế, các chỉ số mảng là các thuộc tính với các khóa chuỗi chứa số nguyên.
Truy cập thuộc tính
Bạn có thể truy cập một thuộc tính của một đối tượng bằng tên thuộc tính của nó. Trình truy cập thuộc tính có hai cú pháp: ký hiệu dấu chấm và ký hiệu khung. Ví dụ: bạn có thể truy cập các thuộc tính của đối tượng
function Car[make, model, year] {
this.make = make;
this.model = model;
this.year = year;
}
9 như sau:const obj = {
property1: value1, // property name may be an identifier
2: value2, // or a number
"property n": value3, // or a string
};
3Tên thuộc tính đối tượng có thể là bất kỳ chuỗi hoặc ký hiệu JavaScript nào, bao gồm một chuỗi trống. Tuy nhiên, bạn không thể sử dụng ký hiệu DOT để truy cập một thuộc tính có tên không phải là định danh JavaScript hợp lệ. Ví dụ: tên thuộc tính có không gian hoặc dấu gạch nối, bắt đầu bằng một số hoặc được giữ bên trong một biến chỉ có thể được truy cập bằng ký hiệu khung. Ký hiệu này cũng rất hữu ích khi tên thuộc tính được xác định động, tức là không thể xác định cho đến khi chạy. Ví dụ như sau:
const obj = {
property1: value1, // property name may be an identifier
2: value2, // or a number
"property n": value3, // or a string
};
4Trong mã trên, khóa
const rand = new Person["Rand McKinnon", 33, "M"];
const ken = new Person["Ken Jones", 39, "M"];
2 là một đối tượng, không phải là một chuỗi cũng không phải là biểu tượng. Khi được thêm vào const rand = new Person["Rand McKinnon", 33, "M"];
const ken = new Person["Ken Jones", 39, "M"];
3, JavaScript gọi phương thức const rand = new Person["Rand McKinnon", 33, "M"];
const ken = new Person["Ken Jones", 39, "M"];
4 của const rand = new Person["Rand McKinnon", 33, "M"];
const ken = new Person["Ken Jones", 39, "M"];
2 và sử dụng chuỗi kết quả làm khóa mới.Bạn cũng có thể truy cập các thuộc tính với giá trị chuỗi được lưu trữ trong một biến. Biến phải được truyền trong ký hiệu khung. Trong ví dụ trên, biến
const rand = new Person["Rand McKinnon", 33, "M"];
const ken = new Person["Ken Jones", 39, "M"];
6 được giữ const rand = new Person["Rand McKinnon", 33, "M"];
const ken = new Person["Ken Jones", 39, "M"];
7 và đó là const rand = new Person["Rand McKinnon", 33, "M"];
const ken = new Person["Ken Jones", 39, "M"];
7 đó là tên thuộc tính. Do đó, const rand = new Person["Rand McKinnon", 33, "M"];
const ken = new Person["Ken Jones", 39, "M"];
9 sẽ trở lại như không xác định.const obj = {
property1: value1, // property name may be an identifier
2: value2, // or a number
"property n": value3, // or a string
};
5
Điều này cho phép truy cập bất kỳ thuộc tính nào như được xác định trong thời gian chạy:
const obj = {
property1: value1, // property name may be an identifier
2: value2, // or a number
"property n": value3, // or a string
};
6Tuy nhiên, hãy cẩn thận khi sử dụng dấu ngoặc vuông để truy cập các thuộc tính có tên được đưa ra bởi đầu vào bên ngoài. Điều này có thể làm cho mã của bạn dễ bị tấn công tiêm đối tượng.
Các thuộc tính không tồn tại của một đối tượng có giá trị
function Car[make, model, year, owner] {
this.make = make;
this.model = model;
this.year = year;
this.owner = owner;
}
0 [và không phải function Car[make, model, year, owner] {
this.make = make;
this.model = model;
this.year = year;
this.owner = owner;
}
1].const obj = {
property1: value1, // property name may be an identifier
2: value2, // or a number
"property n": value3, // or a string
};
7Liệt kê các thuộc tính
Có ba cách gốc để liệt kê/Traverse Object Properties:
4 vòng lặp. Phương pháp này đi qua tất cả các thuộc tính chuỗi có thể suy giảm của một đối tượng cũng như chuỗi nguyên mẫu của nó.const myHonda = { color: "red", wheels: 4, engine: { cylinders: 4, size: 2.2 }, };
3. Phương thức này trả về một mảng chỉ có tên thuộc tính chuỗi riêng ["phím"] trong đối tượngfunction Car[make, model, year, owner] { this.make = make; this.model = model; this.year = year; this.owner = owner; }
3, nhưng không phải là trong chuỗi nguyên mẫu.const rand = new Person["Rand McKinnon", 33, "M"]; const ken = new Person["Ken Jones", 39, "M"];
5. Phương thức này trả về một mảng chứa tất cả các tên thuộc tính chuỗi riêng trong đối tượngfunction Car[make, model, year, owner] { this.make = make; this.model = model; this.year = year; this.owner = owner; }
3, bất kể chúng có thể không có được hay không.const rand = new Person["Rand McKinnon", 33, "M"]; const ken = new Person["Ken Jones", 39, "M"];
Bạn có thể sử dụng ký hiệu khung với
const myHonda = {
color: "red",
wheels: 4,
engine: { cylinders: 4, size: 2.2 },
};
4 để lặp lại trên tất cả các thuộc tính có thể suy giảm của một đối tượng. Để minh họa cách hoạt động của nó, hàm sau hiển thị các thuộc tính của đối tượng khi bạn chuyển tên đối tượng và tên của đối tượng làm đối số cho hàm:const obj = {
property1: value1, // property name may be an identifier
2: value2, // or a number
"property n": value3, // or a string
};
8Thuật ngữ "thuộc tính riêng" đề cập đến các thuộc tính của đối tượng, nhưng không bao gồm các thuộc tính của chuỗi nguyên mẫu. Vì vậy, chức năng gọi
function Car[make, model, year, owner] {
this.make = make;
this.model = model;
this.year = year;
this.owner = owner;
}
8 sẽ in như sau:const obj = {
property1: value1, // property name may be an identifier
2: value2, // or a number
"property n": value3, // or a string
};
9Trên đây là tương đương với:
let x;
if [cond] {
x = { greeting: "hi there" };
}
0Không có cách tự nhiên để liệt kê các thuộc tính không có thể kích hoạt. Tuy nhiên, điều này có thể đạt được với chức năng sau:
let x;
if [cond] {
x = { greeting: "hi there" };
}
1Để biết thêm thông tin, hãy xem tính khả thi và quyền sở hữu tài sản.
Xóa thuộc tính
Bạn có thể xóa một thuộc tính không được inher bằng toán tử
function Car[make, model, year, owner] {
this.make = make;
this.model = model;
this.year = year;
this.owner = owner;
}
9. Mã sau đây cho thấy cách xóa một thuộc tính.let x;
if [cond] {
x = { greeting: "hi there" };
}
2Di sản
Tất cả các đối tượng trong JavaScript kế thừa từ ít nhất một đối tượng khác. Đối tượng được di truyền từ được gọi là nguyên mẫu và các thuộc tính được di truyền có thể được tìm thấy trong đối tượng
const obj = {
property1: value1, // property name may be an identifier
2: value2, // or a number
"property n": value3, // or a string
};
00 của hàm tạo. Xem kế thừa và chuỗi nguyên mẫu để biết thêm thông tin.Xác định thuộc tính cho tất cả các đối tượng thuộc một loại
Bạn có thể thêm một thuộc tính vào tất cả các đối tượng được tạo thông qua một hàm tạo nhất định bằng thuộc tính
const obj = {
property1: value1, // property name may be an identifier
2: value2, // or a number
"property n": value3, // or a string
};
00. Điều này xác định một thuộc tính được chia sẻ bởi tất cả các đối tượng thuộc loại được chỉ định, thay vì chỉ bằng một thể hiện của đối tượng. Mã sau đây thêm thuộc tính const kenscar = new Car["Nissan", "300ZX", 1992];
const vpgscar = new Car["Mazda", "Miata", 1990];
7 cho tất cả các đối tượng thuộc loại function Car[make, model, year] {
this.make = make;
this.model = model;
this.year = year;
}
7, sau đó đọc giá trị của thuộc tính từ một phiên bản const kenscar = new Car["Nissan", "300ZX", 1992];
const vpgscar = new Car["Mazda", "Miata", 1990];
8.let x;
if [cond] {
x = { greeting: "hi there" };
}
3Xác định phương pháp
Phương pháp là một hàm được liên kết với một đối tượng, hoặc, khác nhau, một phương thức là một thuộc tính của một đối tượng là một hàm. Các phương thức được xác định theo cách xác định các hàm bình thường, ngoại trừ việc chúng phải được gán là thuộc tính của một đối tượng. Xem thêm Định nghĩa phương pháp để biết thêm chi tiết. Một ví dụ là:
let x;
if [cond] {
x = { greeting: "hi there" };
}
4Trong đó
const obj = {
property1: value1, // property name may be an identifier
2: value2, // or a number
"property n": value3, // or a string
};
05 là một đối tượng hiện có, const obj = {
property1: value1, // property name may be an identifier
2: value2, // or a number
"property n": value3, // or a string
};
06 là tên bạn đang gán cho phương thức và const obj = {
property1: value1, // property name may be an identifier
2: value2, // or a number
"property n": value3, // or a string
};
07 là tên của hàm.Sau đó, bạn có thể gọi phương thức trong bối cảnh của đối tượng như sau:
let x;
if [cond] {
x = { greeting: "hi there" };
}
5Các phương thức thường được xác định trên đối tượng
const obj = {
property1: value1, // property name may be an identifier
2: value2, // or a number
"property n": value3, // or a string
};
00 của hàm tạo, để tất cả các đối tượng cùng loại chia sẻ cùng một phương thức. Ví dụ: bạn có thể xác định một hàm định dạng và hiển thị các thuộc tính của các đối tượng function Car[make, model, year] {
this.make = make;
this.model = model;
this.year = year;
}
7 được xác định trước đó.let x;
if [cond] {
x = { greeting: "hi there" };
}
6Lưu ý việc sử dụng
function Car[make, model, year] {
this.make = make;
this.model = model;
this.year = year;
}
8 để tham khảo đối tượng mà phương thức thuộc về. Sau đó, bạn có thể gọi phương thức const obj = {
property1: value1, // property name may be an identifier
2: value2, // or a number
"property n": value3, // or a string
};
11 cho từng đối tượng như sau:let x;
if [cond] {
x = { greeting: "hi there" };
}
7Sử dụng điều này cho các tài liệu tham khảo đối tượng
JavaScript có một từ khóa đặc biệt,
function Car[make, model, year] {
this.make = make;
this.model = model;
this.year = year;
}
8, mà bạn có thể sử dụng trong một phương thức để chỉ đối tượng hiện tại. Ví dụ: giả sử bạn có 2 đối tượng, const obj = {
property1: value1, // property name may be an identifier
2: value2, // or a number
"property n": value3, // or a string
};
13 và const obj = {
property1: value1, // property name may be an identifier
2: value2, // or a number
"property n": value3, // or a string
};
14. Mỗi đối tượng có const obj = {
property1: value1, // property name may be an identifier
2: value2, // or a number
"property n": value3, // or a string
};
15, const obj = {
property1: value1, // property name may be an identifier
2: value2, // or a number
"property n": value3, // or a string
};
16 và const obj = {
property1: value1, // property name may be an identifier
2: value2, // or a number
"property n": value3, // or a string
};
17 của riêng họ. Trong hàm const obj = {
property1: value1, // property name may be an identifier
2: value2, // or a number
"property n": value3, // or a string
};
18, thông báo có const obj = {
property1: value1, // property name may be an identifier
2: value2, // or a number
"property n": value3, // or a string
};
19. Khi được thêm vào 2 đối tượng, chúng có thể được gọi và in tin nhắn bằng tên tương ứng của chúng.let x;
if [cond] {
x = { greeting: "hi there" };
}
8function Car[make, model, year] {
this.make = make;
this.model = model;
this.year = year;
}
8 là một "tham số ẩn" của một cuộc gọi hàm được truyền vào bằng cách chỉ định đối tượng trước hàm được gọi. Ví dụ, trong const obj = {
property1: value1, // property name may be an identifier
2: value2, // or a number
"property n": value3, // or a string
};
21, function Car[make, model, year] {
this.make = make;
this.model = model;
this.year = year;
}
8 là đối tượng const obj = {
property1: value1, // property name may be an identifier
2: value2, // or a number
"property n": value3, // or a string
};
13, bởi vì const obj = {
property1: value1, // property name may be an identifier
2: value2, // or a number
"property n": value3, // or a string
};
13 xuất hiện trước hàm const obj = {
property1: value1, // property name may be an identifier
2: value2, // or a number
"property n": value3, // or a string
};
18. Nếu bạn truy cập cùng một chức năng từ một đối tượng khác, function Car[make, model, year] {
this.make = make;
this.model = model;
this.year = year;
}
8 cũng sẽ thay đổi. Nếu bạn sử dụng các phương thức khác để gọi hàm, như const obj = {
property1: value1, // property name may be an identifier
2: value2, // or a number
"property n": value3, // or a string
};
27 hoặc const obj = {
property1: value1, // property name may be an identifier
2: value2, // or a number
"property n": value3, // or a string
};
28, bạn có thể truyền giá trị của function Car[make, model, year] {
this.make = make;
this.model = model;
this.year = year;
}
8 một cách rõ ràng như một đối số.Xác định getters và setters
Getter là một hàm được liên kết với một thuộc tính nhận được giá trị của một thuộc tính cụ thể. Một setter là một hàm được liên kết với một thuộc tính đặt giá trị của một thuộc tính cụ thể. Cùng nhau, họ có thể gián tiếp đại diện cho giá trị của một tài sản.
Getters và setters có thể là
- được xác định trong các bộ khởi tạo đối tượng hoặc
- Đã thêm sau vào bất kỳ đối tượng hiện có.
Trong các bộ khởi tạo đối tượng, getters và setters được xác định giống như các phương thức thông thường, nhưng có tiền tố với các từ khóa
const obj = {
property1: value1, // property name may be an identifier
2: value2, // or a number
"property n": value3, // or a string
};
30 hoặc const obj = {
property1: value1, // property name may be an identifier
2: value2, // or a number
"property n": value3, // or a string
};
31. Phương thức Getter không được mong đợi một tham số, trong khi phương thức Setter mong đợi chính xác một tham số [giá trị mới sẽ được đặt]. Ví dụ:let x;
if [cond] {
x = { greeting: "hi there" };
}
9Các thuộc tính của đối tượng
const rand = new Person["Rand McKinnon", 33, "M"];
const ken = new Person["Ken Jones", 39, "M"];
3 là:
33 - một sốconst obj = { property1: value1, // property name may be an identifier 2: value2, // or a number "property n": value3, // or a string };
34 - một người nhận trả vềconst obj = { property1: value1, // property name may be an identifier 2: value2, // or a number "property n": value3, // or a string };
33 cộng với 1const obj = { property1: value1, // property name may be an identifier 2: value2, // or a number "property n": value3, // or a string };
36 - Một setter đặt giá trị củaconst obj = { property1: value1, // property name may be an identifier 2: value2, // or a number "property n": value3, // or a string };
33 thành một nửa giá trịconst obj = { property1: value1, // property name may be an identifier 2: value2, // or a number "property n": value3, // or a string };
36 đang được đặt thànhconst obj = { property1: value1, // property name may be an identifier 2: value2, // or a number "property n": value3, // or a string };
Getters và setters cũng có thể được thêm vào một đối tượng bất cứ lúc nào sau khi tạo bằng phương thức
const obj = {
property1: value1, // property name may be an identifier
2: value2, // or a number
"property n": value3, // or a string
};
39. Tham số đầu tiên của phương thức này là đối tượng mà bạn muốn xác định getter hoặc setter. Tham số thứ hai là một đối tượng có tên thuộc tính là tên getter hoặc setter và có giá trị thuộc tính là đối tượng để xác định các hàm getter hoặc setter. Dưới đây là một ví dụ xác định cùng một getter và setter được sử dụng trong ví dụ trước:const myHonda = {
color: "red",
wheels: 4,
engine: { cylinders: 4, size: 2.2 },
};
0Những hình thức nào trong hai hình thức để chọn phụ thuộc vào phong cách lập trình và nhiệm vụ của bạn trong tay. Nếu bạn có thể thay đổi định nghĩa của đối tượng gốc, có thể bạn sẽ xác định các getters và setters thông qua trình khởi tạo ban đầu. Hình thức này nhỏ gọn và tự nhiên hơn. Tuy nhiên, nếu bạn cần thêm getters và setters sau - có thể vì bạn đã không viết đối tượng cụ thể - thì biểu mẫu thứ hai là biểu mẫu duy nhất có thể. Hình thức thứ hai thể hiện tốt hơn bản chất năng động của JavaScript, nhưng nó có thể làm cho mã khó đọc và hiểu.
So sánh các đối tượng
Trong JavaScript, các đối tượng là một loại tham chiếu. Hai đối tượng riêng biệt không bao giờ bằng nhau, ngay cả khi chúng có cùng thuộc tính. Chỉ so sánh cùng một tham chiếu đối tượng với chính nó mang lại đúng.
const myHonda = {
color: "red",
wheels: 4,
engine: { cylinders: 4, size: 2.2 },
};
1const myHonda = {
color: "red",
wheels: 4,
engine: { cylinders: 4, size: 2.2 },
};
2Để biết thêm thông tin về các nhà khai thác so sánh, hãy xem các nhà khai thác bình đẳng.
Xem thêm
- Để lặn sâu hơn, hãy đọc về kế thừa và chuỗi nguyên mẫu.
- Để tìm hiểu về các lớp [một cách khác để tạo các đối tượng], hãy đọc tham chiếu của các lớp JavaScript.
- " Trước
- Tiếp theo "