Từ khóa new
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 5 trên 56.
Từ khóa new trong JavaScript dùng để tạo các thực thể từ hàm khởi tạo, đóng vai trò như khuôn mẫu để tạo đối tượng.
Tạo một hàm khởi tạo cho Person:
function Person(name, age) {
this.name = name;
this.age = age;
this.greet = function() {
return "Hello, my name is " + this.name;
};
}Dùng từ khóa new để tạo một đối tượng:
const john = new Person("John", 30);Sau khi chạy đoạn code trên, john là một đối tượng có các thuộc tính và một phương thức:
john.namelà "John"john.agelà 30john.greet()trả về "Hello, my name is John"
Nếu không có từ khóa new, this sẽ tham chiếu đến đối tượng toàn cục (hoặc undefined trong chế độ nghiêm ngặt), chứ không phải đối tượng mới.
Thử thách
Tạo đối tượng ô tô và in phần mô tả
Bạn được cho một hàm khởi tạo tạo ra các đối tượng ô tô. Nhiệm vụ của bạn là:
- Tạo một đối tượng ô tô mới bằng từ khóa
new, truyền "Honda" làm tên và 2018 làm năm - Gọi phương thức
getDescriptiontrên đối tượng ô tô của bạn - In kết quả ra bảng điều khiển
Tự làm thử
function Car(name, year) {
this.name = name;
this.year = year;
this.getDescription = function() {
return "This is a " + this.name + " from " + this.year;
};
}
// TODO: Tạo một đối tượng xe mới bằng từ khóa (keyword) new, truyền "Honda" làm tên và 2018 làm năm
// TODO: Gọi phương thức (method) getDescription trên đối tượng xe bạn vừa tạo và in kết quả ra console
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ậpTự luyện tập: Trình biên dịch JavaScript online