Hàm thứ tự đầu tiên JavaScript

JavaScript coi các hàm là các đối tượng và cho phép chúng ta chuyển các hàm dưới dạng tham số sang một hàm khác và thậm chí trả về các hàm từ các hàm khác. Trong JavaScript, các hàm là các hàm hạng nhất nghĩa là chúng ta có thể lưu trữ chúng trong biến, đối tượng và mảng. Các hàm bậc cao hơn có thể nhận hàm, trả về hoặc thực hiện cả hai

Sau đây là đoạn mã để triển khai các hàm hạng nhất trong JavaScript -

Thí dụ

Bản thử trực tiếp





Document



First class function in Javascript

[22,33,44,55]



CLICK HERE

Click on the above button to double each element of the above array

đầu ra

Hàm thứ tự đầu tiên JavaScript

Khi nhấp vào nút 'BẤM VÀO ĐÂY' -

Hàm thứ tự đầu tiên JavaScript

Hàm thứ tự đầu tiên JavaScript


Hàm thứ tự đầu tiên JavaScript

Tóm lược. trong hướng dẫn này, bạn sẽ biết rằng các hàm JavaScript là công dân hạng nhất. Điều này có nghĩa là bạn có thể lưu trữ các hàm trong các biến, chuyển chúng sang các hàm khác dưới dạng đối số và trả về chúng từ các hàm khác dưới dạng giá trị

Lưu trữ các chức năng trong các biến

Hàm là công dân hạng nhất trong JavaScript. Nói cách khác, bạn có thể coi các hàm giống như các giá trị của các loại khác

Phần sau định nghĩa hàm

let result = sum(10,20);

Code language: JavaScript (javascript)
2 và gán tên hàm cho biến

let result = sum(10,20);

Code language: JavaScript (javascript)
3

function add(a, b) { return a + b; } let sum = add;

Code language: JavaScript (javascript)

Trong câu lệnh gán, chúng tôi không bao gồm dấu ngoặc đơn mở và đóng ở cuối định danh

let result = sum(10,20);

Code language: JavaScript (javascript)
4. Chúng tôi cũng không thực thi chức năng nhưng tham chiếu chức năng

Bằng cách này, chúng ta có thể có hai cách để thực hiện cùng một chức năng. Ví dụ, chúng ta có thể gọi nó bình thường như sau

let result = add(10, 20);

Code language: JavaScript (javascript)

Ngoài ra, chúng ta có thể sử dụng tất cả hàm

let result = sum(10,20);

Code language: JavaScript (javascript)
2 thông qua biến

let result = sum(10,20);

Code language: JavaScript (javascript)
3 như thế này

let result = sum(10,20);

Code language: JavaScript (javascript)

Truyền một chức năng cho một chức năng khác

Vì các hàm là các giá trị nên bạn có thể chuyển một hàm làm đối số sang một hàm khác

Phần sau đây khai báo hàm

let result = sum(10,20);

Code language: JavaScript (javascript)
7 nhận ba đối số. Đối số thứ ba là một hàm

function average(a, b, fn) { return fn(a, b) / 2; }

Code language: JavaScript (javascript)

Bây giờ, bạn có thể chuyển hàm

let result = sum(10,20);

Code language: JavaScript (javascript)
3 sang hàm

let result = sum(10,20);

Code language: JavaScript (javascript)
7 như sau

let result = average(10, 20, sum);

Code language: JavaScript (javascript)

Đặt nó tất cả cùng nhau

function add(a, b) { return a + b; } let sum = add; function average(a, b, fn) { return fn(a, b) / 2; } let result = average(10, 20, sum); console.log(result);

Code language: JavaScript (javascript)

đầu ra

15

Trả về chức năng từ các chức năng

Vì các hàm là các giá trị, bạn có thể trả về một hàm từ một hàm khác

Hàm

function average(a, b, fn) { return fn(a, b) / 2; }

Code language: JavaScript (javascript)
0 sau đây trả về một hàm so sánh hai đối tượng theo một thuộc tính

function compareBy(propertyName) { return function (a, b) { let x = a[propertyName], y = b[propertyName]; if (x > y) { return 1; } else if (x < y) { return -1; } else { return 0; } }; }

Code language: JavaScript (javascript)

Lưu ý rằng

function average(a, b, fn) { return fn(a, b) / 2; }

Code language: JavaScript (javascript)
1 trả về giá trị của

function average(a, b, fn) { return fn(a, b) / 2; }

Code language: JavaScript (javascript)
2 của đối tượng

function average(a, b, fn) { return fn(a, b) / 2; }

Code language: JavaScript (javascript)
3. Nó tương đương với

function average(a, b, fn) { return fn(a, b) / 2; }

Code language: JavaScript (javascript)
4. Tuy nhiên, nếu

function average(a, b, fn) { return fn(a, b) / 2; }

Code language: JavaScript (javascript)
2 chứa khoảng trắng như

function average(a, b, fn) { return fn(a, b) / 2; }

Code language: JavaScript (javascript)
6, bạn cần sử dụng ký hiệu dấu ngoặc vuông để truy cập nó

Giả sử bạn có một mảng đối tượng sản phẩm trong đó mỗi đối tượng sản phẩm có hai thuộc tính.

function average(a, b, fn) { return fn(a, b) / 2; }

Code language: JavaScript (javascript)
7 và 

function average(a, b, fn) { return fn(a, b) / 2; }

Code language: JavaScript (javascript)
8

let products = [ {name: 'iPhone', price: 900}, {name: 'Samsung Galaxy', price: 850}, {name: 'Sony Xperia', price: 700} ];

Code language: JavaScript (javascript)

Bạn có thể sắp xếp một mảng bằng cách gọi phương thức 

function average(a, b, fn) { return fn(a, b) / 2; }

Code language: JavaScript (javascript)
9. Phương thức 

function average(a, b, fn) { return fn(a, b) / 2; }

Code language: JavaScript (javascript)
9 chấp nhận một hàm so sánh hai phần tử của mảng làm đối số

Ví dụ: bạn có thể sắp xếp các đối tượng sản phẩm dựa trên tên bằng cách chuyển một hàm được trả về từ hàm 

function average(a, b, fn) { return fn(a, b) / 2; }

Code language: JavaScript (javascript)
0 như sau

console.log('Products sorted by name:'); products.sort(compareBy('name')); console.table(products);

Code language: JavaScript (javascript)

đầu ra

let result = add(10, 20);

Code language: JavaScript (javascript)
0

Tương tự, bạn có thể sắp xếp các đối tượng sản phẩm theo giá

let result = add(10, 20);

Code language: JavaScript (javascript)
1

đầu ra

let result = add(10, 20);

Code language: JavaScript (javascript)
2

Đặt nó tất cả cùng nhau

let result = add(10, 20);

Code language: JavaScript (javascript)
3

Các chức năng JavaScript khác là ví dụ về Công dân hạng nhất

Ví dụ sau định nghĩa hai hàm chuyển đổi độ dài tính bằng centimet thành inch và ngược lại

let result = add(10, 20);

Code language: JavaScript (javascript)
4

Hàm

let result = average(10, 20, sum);

Code language: JavaScript (javascript)
2 sau đây có hai tham số. Tham số đầu tiên là một hàm và tham số thứ hai là độ dài sẽ được chuyển đổi dựa trên đối số đầu tiên

let result = add(10, 20);

Code language: JavaScript (javascript)
5

Để chuyển đổi

let result = average(10, 20, sum);

Code language: JavaScript (javascript)
3 thành

let result = average(10, 20, sum);

Code language: JavaScript (javascript)
4, bạn có thể gọi hàm

let result = average(10, 20, sum);

Code language: JavaScript (javascript)
2 và chuyển hàm

let result = average(10, 20, sum);

Code language: JavaScript (javascript)
6 vào hàm

let result = average(10, 20, sum);

Code language: JavaScript (javascript)
2 làm đối số đầu tiên

let result = add(10, 20);

Code language: JavaScript (javascript)
6

đầu ra

let result = add(10, 20);

Code language: JavaScript (javascript)
7

Tương tự, để chuyển đổi độ dài từ inch sang cm, bạn có thể chuyển hàm

let result = average(10, 20, sum);

Code language: JavaScript (javascript)
8 thành hàm

let result = average(10, 20, sum);

Code language: JavaScript (javascript)
2, như thế này

Lập trình chức năng thứ tự đầu tiên là gì?

Một ngôn ngữ lập trình được cho là có các hàm Hạng nhất khi các hàm trong ngôn ngữ đó được coi như bất kỳ biến nào khác . Ví dụ: trong một ngôn ngữ như vậy, một hàm có thể được truyền dưới dạng đối số cho các hàm khác, có thể được hàm khác trả về và có thể được gán làm giá trị cho một biến.

Thứ tự đầu tiên cao hơn là gì

Hàm bậc cao hơn là một hàm lấy một hàm làm đối số hoặc trả về một hàm. Hàm bậc cao trái ngược với hàm bậc nhất, không lấy một hàm làm đối số hoặc trả về một hàm làm đầu ra . Trước đây chúng ta đã thấy các ví dụ về. bản đồ () và. lọc().

Thứ tự chức năng trong JavaScript là gì?

Trong Javascript, các hàm có thể được gán cho các biến giống như cách mà chuỗi hoặc mảng có thể. Chúng có thể được truyền vào các hàm khác dưới dạng tham số hoặc trả về từ chúng. “Hàm bậc cao” là hàm chấp nhận các hàm làm tham số và/hoặc trả về một hàm .

HoF trong JavaScript là gì?

Hàm bậc cao (HoF). Một hàm lấy (các) hàm khác làm (các) đối số và/hoặc trả về một hàm dưới dạng giá trị . Chức năng gọi lại (CB). Một chức năng được truyền cho một chức năng khác.