Câu hỏi

Tại sao các class method cần phải được bind với một class instance?

Câu trả lời

Trong React và JavaScript nói chung, các class method cần phải được bind với một class instance để đảm bảo rằng this trong phương thức đó luôn luôn tham chiếu đúng đến instance của class khi phương thức được gọi. Điều này đặc biệt quan trọng khi bạn sử dụng phương thức đó làm callback, ví dụ như trong sự kiện click hoặc trong các hàm bất đồng bộ.

Lý do cần bind:

  1. Đảm bảo this tham chiếu đúng: Trong JavaScript, giá trị của this trong một phương thức phụ thuộc vào cách phương thức đó được gọi. Khi một phương thức class được truyền như một callback mà không được bind, this sẽ không tham chiếu đến instance của class mà thay vào đó là undefined (trong strict mode) hoặc global object (trong non-strict mode), dẫn đến lỗi khi bạn cố gắng truy cập các thuộc tính hoặc phương thức khác của class thông qua this.

  2. Sử dụng trong Callbacks và Event Handlers: Trong React, thường xuyên cần truyền các phương thức class như là callbacks cho các sự kiện, ví dụ như onClick. Để đảm bảo rằng this trong các phương thức đó tham chiếu đúng đến component, bạn cần bind chúng trong constructor hoặc sử dụng các cú pháp khác như class fields syntax hoặc arrow func...

Bạn cần đăng nhập để xem
senior

senior

Gợi ý câu hỏi phỏng vấn

middle

Chức năng của hàm render() trong React là gì?

middle

React có re-render tất cả các components và sub components mỗi khi gọi setState không?

middle

Portal trong React là gì?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào