Hướng dẫn what is javascript binding?
Khi truyền các phương thức đối tượng dưới dạng gọi lại, chẳng hạn Show Trong chương này chúng ta sẽ xem các cách khắc phục.
1. Mất đi “this”Chúng ta đã thấy những ví dụ về sự mất Đây là cách nó có thể xảy ra với
Như chúng ta có thể thấy, kết quả đầu ra không phải là John, Đó là bởi vì
Phương thức Nhiệm vụ này khá điển hình – chúng ta muốn truyền một phương thức đối tượng ở một nơi khác (ở đây – cho bộ lập lịch) nơi nó sẽ được gọi. Làm thế nào để đảm bảo rằng nó sẽ được gọi trong đúng ngữ cảnh? 2. Giải pháp 1: một trình bao bọcGiải pháp đơn giản nhất là sử dụng hàm gói:
Bây giờ nó hoạt động, bởi vì nó nhận được Giống nhau, nhưng ngắn hơn:
Có vẻ tốt, nhưng một lỗ hổng nhỏ xuất hiện trong cấu trúc mã của chúng ta. Điều gì xảy ra nếu trước khi
Giải pháp tiếp theo đảm bảo rằng điều đó sẽ không xảy ra. 3. Giải pháp 2: liên kếtCác hàm cung cấp một
liên kết
để cho phép sửa chữa Cú pháp cơ bản là:
Kết quả Nói cách khác, gọi Chẳng hạn, ở đây
Đây
Bây giờ hãy thử với một phương thức đối tượng:
Trong dòng Ở đây chúng ta có thể thấy rằng các đối số được truyền qua như là một, chỉ
Phương pháp thuận tiện: Nếu một đối tượng có nhiều phương thức và chúng tôi dự định chủ động vượt qua nó, thì chúng tôi có thể liên kết tất cả chúng trong một vòng lặp:
Các thư viện JavaScript cũng cung cấp các hàm để liên kết hàng loạt thuận tiện, ví dụ: _.bindAll(obj) trong lodash. 4. Hàm từng phầnCho đến bây giờ chúng ta chỉ nói về ràng buộc Chúng ta có thể ràng buộc không chỉ Cú pháp đầy đủ của
Nó cho phép liên kết bối cảnh như Chẳng hạn, chúng ta có hàm nhân
Chúng ta hãy sử dụng
Cuộc gọi để Đó gọi là ứng dụng hàm một phần – chúng ta tạo một hàm mới bằng cách sửa một số tham số của hàm hiện có. Xin lưu ý rằng ở đây chúng ta thực sự không sử dụng Hàm
Tại sao chúng ta thường làm một phần hàm? Lợi ích là chúng ta có thể tạo một hàm độc lập với tên dễ đọc ( Trong các trường hợp khác, ứng dụng một phần rất hữu ích khi chúng ta có một hàm rất chung chung và muốn một biến thể ít phổ biến hơn của nó để thuận tiện. Ví dụ, chúng ta có một hàm 5. Từng phần mà không có contextĐiều gì xảy ra nếu chúng ta muốn sửa một số đối số, nhưng
không phải bối cảnh Người bản địa May mắn thay, một hàm Như thế này:
Kết quả của cuộc gọi
Thật dễ dàng để làm điều đó với cú pháp lây lan, phải không? Ngoài ra, có một triển khai _.partial sẵn sàng từ thư viện lodash. 6. Tóm lượcPhương thức Thông thường chúng ta áp dụng Khi chúng tôi sửa một số đối số của hàm hiện có, hàm kết quả (ít phổ biến hơn) được gọi là một phần . Các thuận tiện khi chúng ta không muốn lặp đi lặp lại cùng một lập luận. Giống như nếu chúng ta có một hàm Full series tự học Javascript từ cơ bản tới nâng cao tại đây nha. Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa:
Chào thân ái và quyết thắng! Đăng ký kênh youtube để ủng hộ Cafedev nha các bạn, Thanks you! |