Menu
CoddyTech

Phương thức riêng tư

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 19 trên 56.

Phương thức riêng tư trong lớp JavaScript giúp bạn ẩn các chi tiết triển khai và ngăn truy cập từ bên ngoài vào chức năng nội bộ.

Từ ES2022, bạn có thể định nghĩa phương thức riêng tư bằng tiền tố #:

class Counter {
  #count = 0;
  
  // Tạo một phương thức (method) riêng tư
  #increment() {
    this.#count++;
  }
  
  // Phương thức công khai sử dụng phương thức riêng tư
  addOne() {
    this.#increment();
    return this.#count;
  }
}

Hãy tạo một đối tượng Counter:

const myCounter = new Counter();

Ta có thể gọi phương thức công khai:

console.log(myCounter.addOne()); // Đầu ra: 1

Nhưng nếu thử truy cập trực tiếp vào phương thức riêng tư (private method), bạn sẽ gặp lỗi:

myCounter.#increment(); // Lỗi: Không thể truy cập phương thức riêng tư từ bên ngoài lớp

Phương thức riêng tư giúp duy trì tính đóng gói bằng cách ẩn các chi tiết triển khai nội bộ khỏi thế giới bên ngoài.

challenge icon

Thử thách

Bạn được cung cấp một lớp MessageBox dùng để lưu tin nhắn. Nhiệm vụ của bạn là thêm một phương thức riêng có tên #isValidMessage(text) để xác thực tin nhắn. Phương thức này cần:

  • Trả về true nếu văn bản không rỗng và có ít hơn 100 ký tự
  • Trả về false trong các trường hợp khác

Tự làm thử

import { MessageBox } from './messageBox.js';

// Sử dụng hộp thông báo
const box = new MessageBox();

console.log(box.setMessage("Hello"));    // "Message set!" (sử dụng #isValidMessage)
console.log(box.setMessage(""));         // "Invalid message!" (sử dụng #isValidMessage)
quiz iconTự kiểm tra

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

Tự luyện tập: Trình biên dịch JavaScript online