Hướng dẫn bind trong javascript
Để hiểu rõ về các hàm được đề cập trong bài viết này, các bạn nên ôn lại chút kiến thức về object trong javascript và Khái niệm và cách sử dụng các hàm Bind, Call và ApplyBa hàm bind, call và apply là các prototype của Function nên chỉ có Function mới có thể gọi được 3 hàm này. Sở dĩ, một Function có thể gọi Function khác vì trong JavaScript, Function cũng là một loại Object, mà đã là Object thì sẽ có prototype, hay nói cách khác là gọi được phương thức của nó. 1. Bind()Bind được dùng để xác định tham số this cho một function. Cú pháp:
Trong đó:
Như trong trường hợp dưới đây, khi ta truyền hàm showName vào như một callback cho hàm button.click, giá trị this ở đây chính là button đó. Để hàm chạy đúng, ta dùng bind để bind giá trị person và this.
Không chỉ bind được giá trị this, bind còn bind được các tham số truyền vào cho hàm nữa. Do đó, Bind còn được dùng để viết partial function. Nói một cách đơn giản, partial function tức là tạo ra 1 function mới từ 1 function cũ bằng cách gán mặc định một số tham số cho function cũ đó. Ví dụ: Mình có một hàm log đơn giản có 3 tham số
Giả sử mình muốn tạo một hàm log khác, ghi lại các log error của hôm nay, mình có thể viết một hàm mới dựa theo hàm log cũ:
Thay vì viết như thế, mình có thể viết đơn giản hơn bằng các dùng bind. Ở đây log là function cũ, logErrToday là function mới, được tạo ra bằng cách gán mặc định 2 tham số level và time.
2. Call()Call gọi một hàm với giá trị của
Trong đó:
Các bạn hãy theo dõi các ví dụ dưới để hiểu rõ về cách sử dụng hàm Ví dụ 1: Sử dung hàm
Trong ví dụ trên, chúng ta tạo một hàm ẩn danh và sử dụng hàm Ví dụ 2: Sử dung hàm
Trong ví dụ dưới trên khi chúng ta gọi hàm greet , giá trị của this trong hàm greet chính là đối tượng x. Ví dụ 3: Sử dung Bạn
có thể sử dụng hàm
3. Apply()Apply gọi một hàm với giá trị của
Trong đó:
Các bạn hãy theo dõi các ví dụ dưới để hiểu rõ về cách sử dụng hàm
Ví dụ 1: Sử dụng hàm Một cách sử dụng thông minh hơn với hàm apply cho phép bạn sử dụng các buily-in function cho một số tác vụ có thể đã được viết bằng cách lặp lại các giá trị mảng.
Ví dụ 2: Sử dụng hàm Bạn có thể sử dụng Điều gì xảy ra nếu đó không phải là điều bạn muốn? Nhưng bạn muốn thêm vào mảng hiện có ... Vậy bây giờ thì sao? Viết một vòng lặp? Chắc chắn là không?
Ví dụ 3: Sử dung Bạn có thể sử dụng hàm Trong ví dụ dưới đây chúng ta sẽ tạo ra một global Function method gọi là
Tiếp theo, chúng ta cùng xét qua 1 ví dụ để nhìn thấy được điểm khác nhau trong việc sử dụng 3 hàm này nhé. Call
Apply
Bind
Sau khi xem qua 3 ví dụ sau, chúng ta có thể rút ra 1 vài nhận xét:
Tạm kếtNhư vậy trong bài viết này chúng ta đã cùng nhau tìm hiểu về 3 hàm bind, call và apply trong javascript cùng một vài điểm khác nhau giữa chúng. Bạn thấy thế nào về JS, hãy đưa ra những ý kiến trong quá trình sử dụng js nhé. Nếu các bạn thấy bài viết hữu ích hãy rate 5* và share cho mọi người tham khảo! Hãy để lại comment để mình có thể hoàn thiện bản thân hơn trong tương lai. Cám ơn các bạn! |