Sự khác biệt giữa các hàm ẩn danh và được đặt tên trong JavaScript là gì?

Ý nghĩa của từ 'ẩn danh' định nghĩa một cái gì đó không rõ hoặc không có danh tính. Trong JavaScript, hàm ẩn danh là loại hàm không có tên hoặc chúng ta có thể nói là không có tên. Khi chúng ta tạo một hàm ẩn danh, nó được khai báo mà không có bất kỳ mã định danh nào. Đó là sự khác biệt giữa chức năng bình thường và chức năng ẩn danh. Không đặc biệt trong JavaScript mà còn trong các ngôn ngữ lập trình khác nhau. Vai trò của một chức năng ẩn danh là như nhau

Ở đây, trong phần này, chúng ta sẽ tìm hiểu về hàm ẩn danh và vai trò của nó trong JavaScript. Chúng ta cũng sẽ tìm hiểu và thảo luận về việc thực hiện nó

Triển khai Hàm ẩn danh trong JavaScript

Một ví dụ được hiển thị bên dưới sẽ giúp chúng ta hiểu cách sử dụng ẩn danh và tại sao nó khác với chức năng bình thường

Ví dụ

Đoạn mã trên là việc triển khai chức năng ẩn danh trong đó

  • Hàm được tạo để hiển thị thông báo dưới dạng đầu ra của nó
  • Chúng tôi đã sử dụng từ khóa hàm, được sử dụng khi chúng tôi tạo bất kỳ hàm nào trong JavaScript và hàm được gán cho một biến x bằng cách sử dụng 'let'

Điểm tập trung chính là không có chức năng nào chúng tôi đã khai báo trước đó. Nó chỉ là chức năng từ khóa và dấu ngoặc đơn. Trong trường hợp là một hàm bình thường, chúng ta sử dụng cách đặt tên cho hàm như trong ví dụ mã bên dưới

Ở đây, chúng ta đã tạo một hàm normale[], đây là một hàm bình thường. Đó là sự khác biệt giữa chức năng ẩn danh và chức năng bình thường

Cuối cùng, chúng ta đã gọi hàm đã tạo

Vì vậy, theo cách này, việc triển khai cơ bản của một chức năng ẩn danh đã được thực hiện

Sử dụng các hàm ẩn danh trong JavaScript

Chúng ta có thể sử dụng hàm ẩn danh trong JavaScript cho một số mục đích. Một số trong số họ được đưa ra dưới đây

  • Truyền một hàm ẩn danh cho một hàm khác làm đối số của nó
  • Chúng ta cũng có thể sử dụng một hàm ẩn danh làm đối số cho một hàm khác. Để hiểu rõ hơn, hãy triển khai một đoạn mã mà theo đó chúng ta sẽ chuyển hàm ẩn danh làm giá trị đối số cho một hàm khác

Đoạn mã trên triển khai việc sử dụng hàm ẩn danh làm đối số cho một hàm mới trong đó

  • Hàm setTimeout[] sẽ xuất hàm ẩn danh sau một giây
  • Chúng tôi đã tạo một hàm ẩn danh và chuyển nó tới setTimeout[] làm đối số của nó
  • Bên trong nó, khi mã được thực thi, nó sẽ in câu lệnh sau một giây của thời gian thực thi

Đây là một trong những triển khai và sử dụng chức năng ẩn danh như vậy

Thực hiện ngay lập tức một chức năng

Để gọi và thực thi một hàm ngay sau khi khai báo, tạo một hàm ẩn danh là cách tốt nhất. Hãy xem một ví dụ để hiểu làm thế nào chúng ta có thể làm như vậy

Trong đoạn mã trên, hàm ẩn danh được gọi ngay khi nó hoạt động như được mô tả theo cách sau

Bước đầu tiên là xác định biểu thức hàm, như hình bên dưới

Sau khi xác định hàm, chúng ta có thể thấy dấu ngoặc đơn [] theo sau là dấu kết thúc [;] được sử dụng để gọi hàm đã xác định như hình bên dưới

Bằng cách này, chức năng ẩn danh có thể được gọi ngay lập tức

Ghi chú. Người ta cũng có thể truyền các đối số trong hàm và cũng gọi nó

Đây là một số cách sử dụng hàm ẩn danh để kết luận rằng hàm ẩn danh là hàm không có tên, có thể được gọi ngay lập tức và có thể được sử dụng làm giá trị đối số trong định nghĩa hàm thông thường

Tên chức năng. Có thể bỏ qua, trong trường hợp chức năng ẩn danh. Tên chỉ là cục bộ cho thân hàm

console.log[notHoisted]; // undefined
// Even though the variable name is hoisted,
// the definition isn't. so it's undefined.
notHoisted[]; // TypeError: notHoisted is not a function

var notHoisted = function [] {
  console.log['bar'];
};
0 Không bắt buộc

Tên của một đối số được truyền cho hàm

console.log[notHoisted]; // undefined
// Even though the variable name is hoisted,
// the definition isn't. so it's undefined.
notHoisted[]; // TypeError: notHoisted is not a function

var notHoisted = function [] {
  console.log['bar'];
};
1 Không bắt buộc

Các câu lệnh bao gồm phần thân của hàm

Sự miêu tả

Một biểu thức hàm rất giống và có cú pháp gần giống như một khai báo hàm [xem câu lệnh function để biết chi tiết]. Sự khác biệt chính giữa biểu thức hàm và khai báo hàm là tên hàm, có thể được bỏ qua trong biểu thức hàm để tạo hàm ẩn danh

Một biểu thức hàm có thể được sử dụng như một IIFE [Biểu thức hàm được gọi ngay lập tức] chạy ngay khi nó được xác định. Xem thêm chương về chức năng để biết thêm thông tin

cẩu biểu thức chức năng

Các biểu thức hàm trong JavaScript không được nâng lên, không giống như các khai báo hàm. Bạn không thể sử dụng các biểu thức hàm trước khi tạo chúng

console.log[notHoisted]; // undefined
// Even though the variable name is hoisted,
// the definition isn't. so it's undefined.
notHoisted[]; // TypeError: notHoisted is not a function

var notHoisted = function [] {
  console.log['bar'];
};

Biểu thức hàm được đặt tên

Nếu bạn muốn tham chiếu đến hàm hiện tại bên trong thân hàm, bạn cần tạo một biểu thức hàm được đặt tên. Tên này sau đó chỉ cục bộ cho thân hàm [phạm vi]. Điều này cũng tránh sử dụng thuộc tính

console.log[notHoisted]; // undefined
// Even though the variable name is hoisted,
// the definition isn't. so it's undefined.
notHoisted[]; // TypeError: notHoisted is not a function

var notHoisted = function [] {
  console.log['bar'];
};
3 không chuẩn

const math = {
  factit: function factorial[n] {
    console.log[n]
    if [n 

Chủ Đề