HomeLập trìnhJavaScriptCách sử dụng...

Cách sử dụng một phần ứng dụng để cải thiện mã JavaScript của bạn


bởi Rick Henry

Sử dụng kỹ thuật chức năng này có thể làm cho mã của bạn thanh lịch hơn

YlwtX1HWYUmiNRvHck44VFmc7Ho86aQTIG54

Lập trình hàm cung cấp cho chúng ta các kỹ thuật để giải quyết các vấn đề trong mã của chúng ta. Một trong số đó, ứng dụng một phần, hơi khó hiểu nhưng nó có thể cho phép chúng ta viết ít hơn (nghe có vẻ thú vị phải không?).

Nó là gì?

Ứng dụng một phần bắt đầu với một chức năng. Chúng tôi lấy chức năng này và tạo một chức năng mới với một hoặc nhiều đối số của nó đã được “đặt” hoặc áp dụng một phần. Điều này nghe có vẻ lạ, nhưng nó sẽ làm giảm số lượng tham số cần thiết cho các chức năng của chúng ta.

Hãy đưa ra một số bối cảnh khi chúng ta có thể sử dụng một phần ứng dụng:

const list = (lastJoin, ...items) => {  const commaSeparated = items.slice(0,-1).join(", ");  const lastItem = items.pop();  return `${commaSeparated} ${lastJoin} ${lastItem}`;}

Chức năng nhỏ này có trong một từ duy nhất, lastJoinvà một số lượng tùy ý items. Ban đầu, list tuyên bố một commaSeparated Biến đổi. Biến này lưu trữ một mảng được nối được phân tách bằng dấu phẩy của tất cả các phần tử ngoại trừ phần tử cuối cùng. Trên dòng tiếp theo, chúng tôi lưu trữ mục cuối cùng trong items trong một lastItem Biến đổi. Sau đó, hàm trả về bằng cách sử dụng mẫu chuỗi.

Đọc thêm  Nguyên mẫu JavaScript được giải thích bằng các ví dụ

Hàm sau đó trả về items, dưới dạng chuỗi, ở định dạng danh sách. Ví dụ:

list("and", "red", "green", "blue");     // "red, green and blue"list("with", "red", "green", "blue");    // "red, green with blue"list("or", "red", "green", "blue");      // "red, green or blue"

Của chúng ta list chức năng cho phép chúng tôi tạo danh sách khi chúng tôi muốn. Mỗi loại danh sách chúng tôi tạo, “và”, “với”, “hoặc” là một chuyên biệt hóa của danh sách chung list chức năng. Sẽ không hay sao nếu chúng có chức năng của riêng chúng?!

Cách sử dụng ứng dụng từng phần

Đây là nơi ứng dụng một phần có thể giúp ích. Ví dụ, để thực hiện một listAnd chức năng, chúng tôi “thiết lập” (hoặc áp dụng một phần) các lastJoin lập luận là “và”. Kết quả của việc này có nghĩa là chúng ta có thể gọi hàm được áp dụng một phần như sau:

listAnd("red", "green", "blue");    // "red, green and blue"

Nó cũng không cần phải dừng lại ở đó. Chúng ta có thể thực hiện nhiều chức năng chuyên biệt bằng cách áp dụng một phần một đối số cho chức năng danh sách của chúng tôi:

listOr("red", "green", "blue");      // "red, green or blue"listWith("red", "green", "blue");    // "red, green with blue"

Để làm được điều này, chúng ta cần tạo một partial chức năng tiện ích:

const partial = (fn, firstArg) => {  return (...lastArgs) => {    return fn(firstArg, ...lastArgs);  }}

Hàm này nhận một hàm fn vì nó là tham số đầu tiên và firstArg như thứ hai của nó. Nó trả về một hàm hoàn toàn mới với một tham số, lastArgs. Điều này tập hợp các đối số được thông qua.

Đọc thêm  Giải thích về Booleans JavaScript – Cách sử dụng Booleans trong JavaScript

Bây giờ để làm cho chúng tôi listAnd chức năng chúng tôi gọi partial đi qua trong chúng tôi list chức năng và từ tham gia cuối cùng của chúng tôi:

const listAnd = partial(list, "and");

Của chúng ta listAnd chức năng bây giờ chỉ lấy một danh sách các mục tùy ý. Hàm này khi được gọi sẽ lần lượt gọi hàm được truyền vào list chức năng. Chúng ta có thể thấy rằng nó sẽ được thông qua “và” làm đối số đầu tiên và tập hợp lastArgs sau đó.

Bây giờ chúng tôi đã tạo một chức năng được áp dụng một phần. Chúng ta có thể sử dụng đi sử dụng lại chức năng đặc biệt này trong chương trình của mình:

listAnd("red", "green", "blue");    // "red, green and blue"

Đưa nó đi xa hơn

Các partial chức năng chúng tôi đã tạo là để minh họa cách ứng dụng một phần hoạt động. Có một số thư viện JavaScript chức năng tuyệt vời có sẵn tiện ích này, chẳng hạn như Ramda JS.

Điều đáng chú ý là ngay cả khi bạn chưa quen với ứng dụng một phần như một khái niệm thì vẫn có khả năng bạn đã sử dụng nó. Nếu bạn đã từng sử dụng .bind() phương thức trên một chức năng, đây là một ví dụ về ứng dụng từng phần. Đó là thông lệ để vượt qua this vào liên kết để đặt bối cảnh của nó. Dưới mui xe, nó được áp dụng một phần this và trả về một chức năng mới.

Đọc thêm  Bản đồ JavaScript – Cách sử dụng Hàm JS .map() (Phương thức mảng)



Zik.vn – Biên dịch & Biên soạn Lại

spot_img

Create a website from scratch

Just drag and drop elements in a page to get started with Newspaper Theme.

Buy Now ⟶

Bài viết liên quang

DMCA.com Protection Status