Namespace trong JavaScript là gì

Namespace trong JavaScript là gì?

Namespace trong JavaScript là một mô hình lập trình được sử dụng để gán phạm vi cho các định danh như biến và tên hàm. Nó được sử dụng để ngăn chặn xung đột giữa các biến và hàm có cùng tên. 

Ví dụ: một chương trình JavaScript yêu cầu tạo biến cùng tên trong một ngữ cảnh khác. Trong trường hợp này, việc sử dụng namespace sẽ tách biệt các ngữ cảnh, cho phép sử dụng cùng một số nhận dạng trong các không gian tên khác.

Bài viết này sẽ giúp bạn hiểu việc sử dụng namespace trong JavaScript qua của các ví dụ cụ thể thích hợp dưới đây.

Namespace trong JavaScript là gì?

Namespace trong JavaScript là gì

Trong JavaScript, khái niệm thêm lớp, phương thức, biến và đối tượng bên trong vùng chứa được gọi là “namespace“. Mã bạn viết trong một chương trình JavaScript và các phương thức được xác định trước được lưu trữ trong biến “window“, có thể được coi là “global namespace“. 

Window namespace này được sử dụng bất cứ khi nào một biến mới được tạo. Ngoài ra, việc lưu trữ bất kỳ giá trị nào trong biến mới tạo sẽ sử dụng namespace của nó. Đây là cách hệ thống phân cấp hoạt động trong JavaScript.

Namespace trong JavaScript có cần thiết không?

Dưới đây là danh sách một số vấn đề mà bạn có thể gặp phải trong trường hợp không sử dụng namespace trong một dự án JavaScript:

  • Nếu bạn đã khai báo mọi thứ trong global or window namespace , thì người khác có thể ghi đè chức năng của họ. Trong trường hợp như vậy, các ngôn ngữ biên dịch khác hiển thị lỗi biên dịch. Tuy nhiên, JavaScript sẽ không tạo ra bất kỳ lỗi nào và code của bạn sẽ không hoạt động theo logic được thêm vào.
  • Để đặt tên cho một biến mới, bạn phải tìm kiếm cẩn thận để kiểm tra xem một biến khác đã có cùng tên hay chưa.
  • Khi mọi thứ được đặt trong một namespace, việc tìm các đề xuất sẽ trở nên khó khăn hơn ngay cả sau khi cài đặt các plugin trong Integrated Development Environment (IDE).
  • Cuối cùng, việc thêm mọi thứ vào một namespace chung duy nhất không phải là một phương pháp lý tưởng.

Bây giờ, hãy trình bày phương pháp sử dụng namespace trong JavaScript.

Cách sử dụng namespace trong JavaScript

Để sử dụng namespace trong JavaScript, bạn có thể tạo một chữ “object” theo cách sau:

const vehicle = {

  start: () => {

    console.log('start the vehicle')

  },

  stop: () => {

    console.log('stop the vehicle')

  }}Code language: JavaScript (javascript)

Trong chương trình trên, các phương thức “start” và “stop” được đặt trong tên miền dưới đối tượng “vehicle” và chúng không gây hỏng cho “global object” .

Tương tự, bạn cũng có thể liên kết các phương thức với một đối tượng JavaScript đã được tạo:

const vehicle= {}

vehicle.start = () => {

  console.log('start the vehicle')}

vehicle.stop = () => {

  console.log('stop the vehicle')}Code language: JavaScript (javascript)

Trong trường hợp như vậy, các phương thức vẫn có thể truy cập được từ bên ngoài vì các tham chiếu đến đối tượng “vehicle”.

Để ẩn hoàn toàn code khỏi bên ngoài, bạn có thể “wrap” code mong muốn trong dấu ngoặc nhọn “{}”, bên trong một khối “independent”:

{

  const start = () => {

    console.log('start the vehicle')

  }

  const stop = () => {

    console.log('stop the vehicle')

  }

}Code language: JavaScript (javascript)

Bây giờ, hãy kiểm tra quy trình sử dụng cùng một mã định danh trong các namespace trong JavaScript khác nhau.

Ví dụ:

Bây giờ tôi sẽ tạo một số nhận dạng “start” và liên kết nó với các đối tượng “truck”“bus” . Trong trường hợp này, cùng một số nhận dạng “start” được sử dụng trong các namespace khác nhau bằng cách liên kết nó với các đối tượng trong global khác nhau:

var truck= {

  start: function () {

    console.log("Truck in Started!");

  }

}

 

var bus = {

  start: function () {

    console.log("Bus is Started!");

  }

}Code language: JavaScript (javascript)

Tiếp theo, tôi sẽ gọi hàm “start ()” với cả hai đối tượng:

truck.start();

bus.start();Code language: CSS (css)

Đầu ra đã cho biểu thị rằng cả “truck” và “bus” đã truy cập thành công hàm “start ()”:

Namespace trong JavaScript là gì

Ưu điểm của namespace trong JavaScript

Hãy xem những lợi ích sau của việc sử dụng namespace trong JavaScript:

  • Việc sử dụng namespace JavaScript bảo vệ và cách ly code khỏi các ứng dụng khác.
  • Nó tổ chức code, giúp dễ đọc, dễ hiểu và thay đổi theo yêu cầu.
  • Nó tránh rò rỉ bộ nhớ .
  • Nếu bạn muốn sử dụng nhiều hàm có cùng tên, hãy phân biệt chúng bằng cách sử dụng không gian tên JavaScript.
  • Với sự trợ giúp của không gian tên, bạn sẽ dễ dàng nhận ra các biến và hàm từ nơi chúng được định nghĩa.

Kết luận

Namespace trong JavaScript là gì

Namespace trong JavaScript là một khái niệm về việc thêm các lớp, phương thức, biến và đối tượng vào bên trong một vùng chứa. Nó là một mô hình lập trình được sử dụng để gán phạm vi cho các định danh, chẳng hạn như các biến và tên hàm. Namespace trong Javascript hỗ trợ ngăn chặn sự va chạm giữa các biến và hàm giống nhau.

Cảm ơn bạn đã theo dõi bài viết!

Các bạn có thể tham khảo các bài viết hay về JavaScript tại đây.


Hãy tham gia nhóm Học lập trình để thảo luận thêm về các vấn đề cùng quan tâm.

TỔNG HỢP TÀI LIỆU HỌC LẬP TRÌNH CƠ BẢN CHO NGƯỜI MỚI BẮT ĐẦU

KHOÁ HỌC BOOTCAMP JAVA/JAVASCRIPT/PHP TRỞ THÀNH LẬP TRÌNH VIÊN TRONG 5-6 THÁNG

Bình luận