Thuộc tính tính toán
Thuộc phần Lập trình hướng đối tượng trong hành trình JavaScript của Coddy. Bài học 44 trên 56.
Thuộc tính tính toán là các hàm getter tính toán và trả về một giá trị, thay vì chỉ trả về dữ liệu đã lưu. Chúng trông giống thuộc tính thông thường nhưng tính toán giá trị ngay khi cần.
Hãy cùng xem ví dụ. Ta có một đối tượng với thuộc tính thông thường:
const circle = {
radius: 5
};Bây giờ, chúng ta thêm một thuộc tính được tính toán bằng getter:
const circle = {
radius: 5,
get diameter() {
return this.radius * 2;
}
};Đây là cách chúng ta truy cập thuộc tính đã tính toán:
console.log(circle.diameter); // Đầu ra: 10Nếu chúng ta cập nhật bán kính, đường kính cũng tự động cập nhật:
circle.radius = 10;
console.log(circle.diameter); // Đầu ra: 20Thuộc tính được tính toán hữu ích khi giá trị của một thuộc tính phụ thuộc vào các thuộc tính khác hoặc cần được tính toán.
Thử thách
Bạn được cung cấp một lớp Rectangle có các thuộc tính chiều rộng và chiều cao. Nhiệm vụ của bạn là thêm các thuộc tính được tính toán cho diện tích và chu vi.
- Thuộc tính được tính toán
area- trả về chiều rộng × chiều cao - Thuộc tính được tính toán
perimeter- trả về 2 × (chiều rộng + chiều cao)
Tự làm thử
import { Rectangle } from './rectangle.js';
// Code kiểm thử, đừng sửa
const rect = new Rectangle(5, 10);
console.log(`Area: ${rect.area}`); // Đầu ra phải là "Area: 50"
console.log(`Perimeter: ${rect.perimeter}`); // Đầu ra phải là "Perimeter: 30"Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Lập trình hướng đối tượng
1Đối tượng và từ khóa this
Ôn nhanh: đối tượngThêm phương thức vào đối tượngTìm hiểu từ khóa thisHàm khởi tạoTừ khóa newThử thách ôn tập7Kế thừa và từ khóa extends
Kế thừaQuan hệ "là một"Từ khóa extendsPhương thức super()Kế thừa thuộc tính và phương thứcThử thách ôn tập13Kết hợp hay kế thừa
Quan hệ “có một” và “là một”Những hạn chế của kế thừa nhiều tầngXây dựng đối tượng5Đóng gói và quyền truy cập
Đóng góiTrường công khai và trường riêng tưPhương thức riêng tưThử thách ôn tập8Tổ chức code OOP
Tổ chức các lớp thành module11Dự án: Trình hiển thị hình dạng
Thiết lập: lớp Hình dạng và xuấtKế thừa lớp Hình trònGhi đè và phương thức diện tíchBộ đếm hình dạng tĩnh6Dự án: Tài khoản ngân hàng đơn giản
Lớp BankAccountGửi tiền và rút tiềnSố dư dưới dạng thuộc tính riêng tư9Phương thức và thuộc tính tĩnh
Cấp lớp và cấp instanceThuộc tính tĩnhPhương thức tiện ích tĩnhThử thách ôn tập12Getter và setter
Từ khóa get và setThuộc tính tính toánKiểm tra hợp lệ và tác dụng phụThử thách ôn tậpTự luyện tập: Trình biên dịch JavaScript online