Nguyên mẫu đối tượng JavaScript
Tất cả các đối tượng JavaScript đều kế thừa các thuộc tính và phương thức từ một nguyên mẫu.
Trong chương trước chúng ta đã học cách sử dụng hàm khởi tạo đối tượng :
Ví dụ
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
}
const myFather = new Person("John", "Doe", 50, "blue");
const myMother = new Person("Sally", "Rally", 48, "green");
Hãy tự mình thử »Chúng tôi cũng đã biết rằng bạn không thể thêm thuộc tính mới vào hàm tạo đối tượng hiện có:
Để thêm thuộc tính mới vào hàm tạo, bạn phải thêm thuộc tính đó vào hàm tạo:
Ví dụ
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
this.nationality = "English";
}
Hãy tự mình thử » Kế thừa nguyên mẫu
Tất cả các đối tượng JavaScript đều kế thừa các thuộc tính và phương thức từ một nguyên mẫu:
- Đối tượng
Date
kế thừa từDate.prototype
- Các đối tượng
Array
kế thừa từArray.prototype
- Đối tượng
Person
kế thừa từPerson.prototype
Object.prototype
nằm ở đầu chuỗi kế thừa nguyên mẫu:
Các đối tượng Date
, đối tượng Array
và đối tượng Person
kế thừa từ Object.prototype
.
Thêm thuộc tính và phương thức vào đối tượng
Đôi khi bạn muốn thêm thuộc tính (hoặc phương thức) mới vào tất cả các đối tượng hiện có của một kiểu nhất định.
Đôi khi bạn muốn thêm thuộc tính (hoặc phương thức) mới vào hàm tạo đối tượng.
Sử dụng thuộc tính nguyên mẫu
Thuộc tính prototype
JavaScript cho phép bạn thêm các thuộc tính mới vào hàm tạo đối tượng:
Ví dụ
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
}
Person.prototype.nationality = "English";
Hãy tự mình thử » Thuộc tính prototype
JavaScript cũng cho phép bạn thêm các phương thức mới vào hàm tạo đối tượng:
Ví dụ
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
}
Person.prototype.name = function() {
return this.firstName + " " + this.lastName;
};
Hãy tự mình thử »Chỉ sửa đổi nguyên mẫu của riêng bạn. Không bao giờ sửa đổi nguyên mẫu của các đối tượng JavaScript tiêu chuẩn.