Export mặc định và export có tê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 10 trên 56.
Trong module JavaScript, bạn có hai cách chính để xuất code: xuất có tên và xuất mặc định.
Xuất có tên cho phép bạn xuất nhiều giá trị từ một module:
// math.js
export function add(a, b) {
return a + b;
}
export function subtract(a, b) {
return a - b;
}Khi nhập các hàm được xuất có tên (named exports), bạn phải dùng đúng các tên bên trong dấu ngoặc nhọn:
// app.js
import { add, subtract } from './math.js';
console.log(add(5, 3)); // 8
console.log(subtract(10, 4)); // 6Nếu bạn cần đổi tên một mục nhập có tên, hãy dùng từ khóa as để tạo bí danh:
// app.js
import { add as sum, subtract as minus } from './math.js';
console.log(sum(5, 3)); // 8
console.log(minus(10, 4)); // 6Xuất mặc định cho phép bạn xuất một giá trị chính từ một module:
// user.js
const user = {
name: 'John',
age: 30
};
export default user;Khi nhập một export mặc định, bạn có thể dùng tên bất kỳ mà không cần dấu ngoặc nhọn:
// app.js
import person from './user.js';
console.log(person.name); // 'John'Khi nào nên dùng loại nào? Dùng export có tên khi một module cung cấp nhiều tiện ích liên quan (ví dụ: một nhóm hàm hỗ trợ). Dùng export mặc định khi một module có một mục đích chính hoặc một giá trị chính (ví dụ: một lớp, một component hoặc một đối tượng cấu hình).
Bạn có thể kết hợp cả hai kiểu xuất trong một module:
// vehicle.js
export const wheels = 4;
export const doors = 4;
const car = {
brand: 'Toyota',
model: 'Corolla'
};
export default car;Và nhập chúng cùng nhau:
// app.js
import myCar, { wheels, doors } from './vehicle.js';
console.log(myCar.brand); // 'Toyota'
console.log(wheels); // 4Thử thách
DễBạn có hai tệp. Nhiệm vụ của bạn là thiết lập các export trong calculator.js và import trong main.js.
- Trong
calculator.js: Exportcalculatedưới dạng mặc định vàsquaredưới dạng có tên - Trong
main.js: Import cả hai hàm chính xác
Các bài kiểm tra sẽ kiểm tra:
- Dùng export mặc định cho
calculate - Dùng export có tên cho
square - Cả hai import đều hoạt động chính xác
Tự làm thử
// TODO: Nhập cả hai hàm (function) từ calculator.js vào đây
// Kiểm tra
console.log(calculate(10, 5, '+')); // Đầu ra phải là 15
console.log(square(4)); // Đầu ra phải là 16Bà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