Chức năng gọi JavaScript từ một tệp khác

trong nút. js, bất kỳ tệp nào bao gồm mã JavaScript trong tệp kết thúc bằng

function add(x, y) {
  return x + y;
}

function subtract(x, y) {
  return x - y;
}
5 đều là một mô-đun. Một mô-đun có thể chứa các định nghĩa về hàm, lớp, đối tượng hoặc biến có thể được tham chiếu hoặc sử dụng trong một tệp Javascript khác

Khi ứng dụng của bạn bắt đầu lớn hơn, việc duy trì một tệp sẽ trở thành một nhiệm vụ khó khăn. rất dễ bị lạc trong cơ sở mã và không biết một đoạn mã cụ thể đang làm gì. Vấn đề trở nên tồi tệ hơn khi bạn đang gỡ lỗi mã

Để bảo trì, tái sử dụng và sắp xếp mã dễ dàng hơn, bạn cần chia mã thành nhiều tệp. Quá trình này được gọi là mô đun hóa. Mỗi mô-đun chứa các chức năng hoặc lớp xử lý một chức năng cụ thể

Các hàm trong một mô-đun có thể được nhập và gọi trong các mô-đun khác giúp bạn không phải sao chép các định nghĩa hàm vào các tệp khác. Một mô-đun có thể được chỉnh sửa hoặc gỡ lỗi riêng giúp bạn dễ dàng thêm hoặc xóa các tính năng mới hơn

Trong hướng dẫn này, bạn sẽ học cách tạo Node. mô-đun js. Bạn cũng sẽ tìm hiểu cách gộp các hàm được xác định trong một tệp và sử dụng chúng trong một tệp khác. Một số chủ đề chúng ta sẽ khám phá là

  • Tạo và xuất một mô-đun
  • Nhập mô-đun
  • Xuất nhiều chức năng và giá trị từ một mô-đun
  • Nhập một mô-đun từ một thư mục
  • Các loại mô-đun

Để làm theo hướng dẫn này, hãy tạo một thư mục

function add(x, y) {
  return x + y;
}

function subtract(x, y) {
  return x - y;
}
6 trong thư mục chính của bạn hoặc bất cứ nơi nào bạn muốn

mkdir nodejs

Vào thư mục

function add(x, y) {
  return x + y;
}

function subtract(x, y) {
  return x - y;
}
6

cd nodejs

Bây giờ bạn đã sẵn sàng làm theo hướng dẫn và thực hành mã

Tạo và xuất một mô-đun

Tạo một mô-đun

Các mô-đun được tạo trong Node. js bằng cách tạo tệp JavaScript. Mỗi khi bạn tạo một tệp mới có phần mở rộng

function add(x, y) {
  return x + y;
}

function subtract(x, y) {
  return x - y;
}
5, tệp đó sẽ trở thành một mô-đun

Hãy viết mô-đun đầu tiên của chúng tôi. Chúng ta sẽ bắt đầu bằng cách tạo hai hàm để thực hiện các phép tính đơn giản

Nhập đoạn mã sau và lưu nó với tên

function add(x, y) {
  return x + y;
}

function subtract(x, y) {
  return x - y;
}
9 bên trong thư mục
function add(x, y) {
  return x + y;
}

function subtract(x, y) {
  return x - y;
}
6 của bạn

lib. js

function add(x, y) {
  return x + y;
}

function subtract(x, y) {
  return x - y;
}

Tệp

function add(x, y) {
  return x + y;
}

function subtract(x, y) {
  return x - y;
}
9 hiện là một mô-đun. Hai chức năng
const result = add(4, 4);
console.log(result);
2 và
const result = add(4, 4);
console.log(result);
3 chỉ có trong tệp của chúng tôi. Chúng được đóng gói, nghĩa là chúng không thể được truy cập bên ngoài tệp. nếu bạn cố gọi chúng trong một tệp khác, bạn sẽ gặp lỗi

Bên trong thư mục

const result = add(4, 4);
console.log(result);
4. Tạo một tệp khác
const result = add(4, 4);
console.log(result);
5. Hãy thử gọi hàm
const result = add(4, 4);
console.log(result);
2 trong tệp của chúng tôi

chủ yếu. js

const result = add(4, 4);
console.log(result);

Chạy tệp với nút. js

node main.js

Bạn sẽ nhận được một lỗi

ReferenceError: add is not defined

Xuất một mô-đun

Như chúng ta đã học trong ví dụ trước, theo mặc định, chúng ta không thể truy cập các chức năng được xác định trong một mô-đun trong một mô-đun khác. Để truy cập các chức năng của mô-đun, chúng ta phải xuất các chức năng và nhập chúng vào tệp mà chúng ta muốn gọi các chức năng

Hãy xuất hàm

const result = add(4, 4);
console.log(result);
2 trong tệp
function add(x, y) {
  return x + y;
}

function subtract(x, y) {
  return x - y;
}
9

Đi đến cuối tệp

function add(x, y) {
  return x + y;
}

function subtract(x, y) {
  return x - y;
}
9 và thêm
node main.js
0

lib. js

function add(x, y) {
  return x + y;
}

function subtract(x, y) {
  return x - y;
}

// add the code below
module.exports = { add };

Điều đang xảy ra trong tệp

function add(x, y) {
  return x + y;
}

function subtract(x, y) {
  return x - y;
}
9 của chúng tôi là chúng tôi đã thêm hàm
const result = add(4, 4);
console.log(result);
2 vào đối tượng
node main.js
3. Việc thêm chức năng vào
node main.js
3 sẽ làm cho chức năng đó có sẵn trong bất kỳ tệp nào nhập mô-đun
function add(x, y) {
  return x + y;
}

function subtract(x, y) {
  return x - y;
}
9

Bạn không bị giới hạn trong việc xuất các chức năng. Bạn có thể xuất các biến, đối tượng và lớp, v.v.

Nhập một mô-đun trong Node. js

Để bao gồm các chức năng được xác định trong một tệp khác trong Nút. js, chúng ta cần nhập mô-đun. chúng tôi sẽ sử dụng từ khóa

node main.js
6 ở đầu tệp

Kết quả của

node main.js
6 sau đó được lưu trữ trong một biến được sử dụng để gọi các hàm bằng cách sử dụng ký hiệu dấu chấm

Để thấy điều đó trong thực tế, hãy nhập mô-đun

function add(x, y) {
  return x + y;
}

function subtract(x, y) {
  return x - y;
}
9 bằng cách yêu cầu nó bên trong tệp
const result = add(4, 4);
console.log(result);
5 và gọi hàm
const result = add(4, 4);
console.log(result);
2 với ký hiệu dấu chấm

chủ yếu. js

const lib = require("./lib");

const result = lib.add(4, 4);
console.log(`The result is: ${result}`);

Nếu chúng tôi chạy mã của mình ngay bây giờ, chúng tôi sẽ nhận được đầu ra sau

The result is: 8

Điều đang xảy ra trong đoạn mã trên là chúng ta đang nhập mô-đun

function add(x, y) {
  return x + y;
}

function subtract(x, y) {
  return x - y;
}
9

const lib = require("./lib");

Khi nhập tệp

function add(x, y) {
  return x + y;
}

function subtract(x, y) {
  return x - y;
}
9, điều quan trọng là phải thêm tiền tố vào nó bằng ____17_______3 bên trong ____16_______6. Điều này nói với Node. js mà chúng tôi đang nhập một mô-đun cục bộ (mô-đun do chính bạn tạo, chẳng hạn như mô-đun
function add(x, y) {
  return x + y;
}

function subtract(x, y) {
  return x - y;
}
9)

Khi yêu cầu mô-đun, bạn có thể bỏ phần mở rộng của tệp như chúng tôi đã thực hiện

ReferenceError: add is not defined
6 hoặc bạn có thể đặt phần mở rộng tệp (
function add(x, y) {
  return x + y;
}

function subtract(x, y) {
  return x - y;
}
5) của tệp bạn muốn nhập

cd nodejs
0

Khi

node main.js
6 nhập mô-đun, nó sẽ trả về một đối tượng với phương thức
const result = add(4, 4);
console.log(result);
2 và lưu trữ nó trong biến
function add(x, y) {
  return x + y;
}

function subtract(x, y) {
  return x - y;
}

// add the code below
module.exports = { add };
0

cd nodejs
1

đầu ra

cd nodejs
2

Đối tượng được trả về bởi

node main.js
6 là đối tượng
node main.js
3 từ mô-đun
function add(x, y) {
  return x + y;
}

function subtract(x, y) {
  return x - y;
}
9 chúng tôi chỉ xuất một phương thức
const result = add(4, 4);
console.log(result);
2

Vì một đối tượng là thứ được trả về bởi

node main.js
6, nên để truy cập hàm
const result = add(4, 4);
console.log(result);
2, chúng tôi đã sử dụng ký hiệu dấu chấm bằng cách thêm tiền tố vào tên đối tượng(
function add(x, y) {
  return x + y;
}

function subtract(x, y) {
  return x - y;
}

// add the code below
module.exports = { add };
0) để gọi hàm
function add(x, y) {
  return x + y;
}

function subtract(x, y) {
  return x - y;
}

// add the code below
module.exports = { add };
8 và sau đó lưu kết quả của hàm vào biến
function add(x, y) {
  return x + y;
}

function subtract(x, y) {
  return x - y;
}

// add the code below
module.exports = { add };
9

cd nodejs
3

Xuất nhiều hàm và giá trị

Có một số cách để xuất nhiều hàm và giá trị với

node main.js
3

lib. js

cd nodejs
4

Trong tệp

const result = add(4, 4);
console.log(result);
5, bạn có thể nhập chúng như sau

cd nodejs
5

Bạn cũng có thể sử dụng cú pháp phá hủy để giải nén các thuộc tính của đối tượng được trả về bởi

node main.js
6 và lưu trữ chúng trong các biến

cd nodejs
6

Một cách khác để xuất nhiều hàm là định nghĩa các hàm bên trong đối tượng

node main.js
3

lib. js

cd nodejs
7

Bạn cũng có thể định nghĩa độc lập từng chức năng như một phương thức của

node main.js
3

lib. js

cd nodejs
8

Nhập một mô-đun từ một thư mục

Bên trong thư mục dự án, tạo một thư mục

const lib = require("./lib");

const result = lib.add(4, 4);
console.log(`The result is: ${result}`);
5 và di chuyển tệp
function add(x, y) {
  return x + y;
}

function subtract(x, y) {
  return x - y;
}
9 vào đó

cd nodejs
9

Để nhập tệp

function add(x, y) {
  return x + y;
}

function subtract(x, y) {
  return x - y;
}
9 bên trong thư mục, yêu cầu
function add(x, y) {
  return x + y;
}

function subtract(x, y) {
  return x - y;
}
9 bằng cách thêm tiền tố vào tên thư mục

Trong tệp

const result = add(4, 4);
console.log(result);
5

function add(x, y) {
  return x + y;
}

function subtract(x, y) {
  return x - y;
}
0

Các loại module trong Node. js

  • Mô-đun cục bộ
  • Mô-đun lõi
  • Mô-đun của bên thứ ba

Mô-đun cục bộ

Đây là những mô-đun mà bạn có thể tự tạo và sử dụng chúng trong ứng dụng của mình. Một ví dụ điển hình về mô-đun cục bộ là mô-đun

function add(x, y) {
  return x + y;
}

function subtract(x, y) {
  return x - y;
}
9 chúng tôi đã tạo và nhập vào tệp
const result = add(4, 4);
console.log(result);
5 trong hướng dẫn này

nhập mô-đun cục bộ

Tóm lại, để nhập một mô-đun cục bộ, bạn phải

The result is: 8
2 hoặc
The result is: 8
3 hoặc
The result is: 8
4

function add(x, y) {
  return x + y;
}

function subtract(x, y) {
  return x - y;
}
1

Bạn không cần phải thêm “. js”, Nút. js vẫn có thể tải mô-đun cục bộ của bạn mà không cần mô-đun như chúng ta đã biết

function add(x, y) {
  return x + y;
}

function subtract(x, y) {
  return x - y;
}
2

Mô-đun lõi

Đây là những mô-đun đi kèm với Node. js theo mặc định. Bạn không cần phải tải chúng xuống trong dự án của mình

Một số mô-đun lõi phổ biến và được sử dụng thường xuyên nhất là

The result is: 8
5,
The result is: 8
6,
The result is: 8
7, v.v.

Nhập mô-đun lõi

Để nhập mô-đun lõi, bạn phải sử dụng phương thức

The result is: 8
8 với tên của mô-đun lõi được truyền làm đối số

function add(x, y) {
  return x + y;
}

function subtract(x, y) {
  return x - y;
}
3

Mô-đun của bên thứ ba

Các mô-đun của bên thứ ba là các mô-đun được tải xuống bằng trình quản lý gói, chẳng hạn như npm. Các module này thường được lưu trữ trong thư mục

The result is: 8
9

Bạn có thể cài đặt các mô-đun của bên thứ ba trên toàn cầu hoặc cục bộ trong dự án của mình

Ví dụ về các mô-đun của bên thứ ba là

const lib = require("./lib");
0,
const lib = require("./lib");
1,
const lib = require("./lib");
2, v.v.

Nhập mô-đun của bên thứ ba

Để nhập mô-đun của bên thứ ba, bạn phải sử dụng phương pháp

The result is: 8
8 lấy tên của mô-đun bên thứ ba làm đối số

function add(x, y) {
  return x + y;
}

function subtract(x, y) {
  return x - y;
}
4

Phần kết luận

Trong hướng dẫn này, chúng tôi đã giới thiệu cách tạo và xuất mô-đun, nhập mô-đun và tìm hiểu các cách khác nhau để xuất nhiều hàm và giá trị cũng như các loại mô-đun khác nhau trong Node. js

Bạn có thể gọi một hàm từ một tệp JavaScript khác không?

Nếu đây là một phần của trang web thì bạn chỉ cần tải cả hai tệp tập lệnh (thông qua phần tử Bạn có thể gọi hàm a đơn giản bằng cách gọi nó trong tệp js .

Làm cách nào để gọi hàm JavaScript từ một tệp HTML khác?

Gọi hàm bằng tệp JavaScript bên ngoài . Để đưa tệp JavaScript của chúng ta vào tài liệu HTML, chúng ta phải sử dụng thẻ script .

Làm cách nào để gọi một tệp JavaScript từ một tệp JavaScript khác?

Trả lời. Sử dụng Tuyên bố xuất và nhập .

Làm cách nào để gọi hàm từ một hàm khác trong JavaScript?

Phương thức call() là một phương thức JavaScript được xác định trước. Nó có thể được sử dụng để gọi (gọi) một phương thức với đối tượng chủ sở hữu làm đối số (tham số). Với call() , một đối tượng có thể sử dụng một phương thức thuộc đối tượng khác.