Không gian tên trong JavaScript

Không gian tên là gì?

Không gian tên là hành động bao bọc một tập hợp các thực thể, biến, hàm, đối tượng dưới một thuật ngữ ô duy nhất.

JavaScript có nhiều cách khác nhau để làm điều đó và việc xem các ví dụ sẽ giúp khái niệm dễ hiểu hơn.

Cách đơn giản nhất để tạo một không gian tên là tạo một đối tượng theo nghĩa đen:

const car = {
  start: () => {
    console.log('start')
  },
  stop: () => {
    console.log('stop')
  }
}

Theo cách này, điểm bắt đầu và điểm dừng được đặt tên dướicar:car.start()car.stop().

Họ không phảigây ô nhiễm đối tượng toàn cầu.

Sao nó lại quan trọng? Một lý do chính đáng là không có gì có thể cản trở họ.

Cách thức hoạt động cũng bằng cách gán một biến cho một đối tượng sau khi nó được tạo:

const car = {}

car.start = () => { console.log(‘start’) }

car.stop = () => { console.log(‘stop’) }

Nhưng họ vẫn có thể truy cập từ bên ngoài, nhờ vàocartham chiếu đối tượng.

Cách tốt nhất để ẩn hoàn toàn mã khỏi bên ngoài là bọc nó thành một khối, là một phần của mã được bọc trong dấu ngoặc nhọn, giống như mộtifhoặc làformà còn là một khối độc lập được hình thành như thế này:

{
  const start = () => {
    console.log('start')
  }

const stop = () => { console.log(‘stop’) } }

Hai chức năng đó hiện không thể truy cập được bên ngoài khối.

Nhưng bạn cần chú ý luôn sử dụnglethoặc làconst, là phạm vi khối.

Sử dụngvarthay vào đó sẽ "rò rỉ" nó ra bên ngoài khối.

Để giải quyết vấn đề mà bạn có thể sử dụng các hàm, đây là cách "cũ", pre-let / const:

(function() {
  var start = () => {
    console.log('start')
  }

const stop = () => { console.log(‘stop’) } })()

Hiện naystartstopcả hai đều không thể tiếp cận được từ bên ngoài, ngay cả khistartđược gán cho một biến được xác định bằngvar.

Tải xuống miễn phí của tôiSổ tay dành cho Người mới bắt đầu JavaScript


Các hướng dẫn js khác: