Siêu lớp và lớp con trong javascript
Trong cuốn sách này, phong cách lập trình hướng đối tượng (OOP) của JavaScript được giới thiệu theo bốn bước. Chương này bao gồm bước 3 và 4, chương trước bao gồm bước 1 và 2. Các bước là (hình. 12) Show
29. 1 Tờ ăn gian. các lớp họcsiêu lớp
phân lớp
ghi chú
29. 2 Các yếu tố cần thiết của lớp họcCác lớp về cơ bản là một cú pháp nhỏ gọn để thiết lập các chuỗi nguyên mẫu (đã được giải thích trong chương trước). Về cơ bản, các lớp của JavaScript là độc đáo. Nhưng đó là điều mà chúng tôi ít thấy khi làm việc với họ. Họ thường cảm thấy quen thuộc với những người đã sử dụng các ngôn ngữ lập trình hướng đối tượng khác Lưu ý rằng chúng ta không cần các lớp để tạo các đối tượng. Chúng tôi cũng có thể làm như vậy thông qua đối tượng chữ. Đó là lý do tại sao mẫu đơn không cần thiết trong JavaScript và các lớp được sử dụng ít hơn so với nhiều ngôn ngữ khác có chúng 29. 2. Hạng 1 A dành cho ngườiTrước đây chúng tôi đã làm việc với 15 và 16, các đối tượng đơn lẻ đại diện cho người. Hãy sử dụng một khai báo lớp để triển khai một nhà máy cho các đối tượng đó
15 và 16 hiện có thể được tạo thông qua 19 0Hãy kiểm tra những gì bên trong cơ thể của lớp 20
Chúng ta cũng có thể tạo các thuộc tính thể hiện (trường công khai) trong hàm tạo 6Ngược lại với các trường riêng của cá thể, các thuộc tính của cá thể không cần phải khai báo trong thân lớp 29. 2. 2 Biểu thức lớpCó hai loại định nghĩa lớp (cách định nghĩa lớp)
Các biểu thức lớp có thể ẩn danh và được đặt tên 7Tên của biểu thức lớp được đặt tên hoạt động tương tự như tên của biểu thức hàm được đặt tên. Nó chỉ có thể được truy cập bên trong phần thân của một lớp và giữ nguyên, bất kể lớp đó được gán cho cái gì 29. 2. 3 Nhà điều hành class Employee extends Person {
constructor(firstName, title) {
super(firstName);
this.title = title; // (C)
}
describe() {
return super.describe() +
` (${this.title})`;
}
}
const jane = new Employee('Jane', 'CTO');
assert.equal(
jane.title,
'CTO'
);
assert.equal(
jane.describe(),
'Person named Jane (CTO)'
); |