Bắt đầu với NodeJS - Prototypal Inheritance and Function Contructors
Inheritance
Dịch ra là thừa kế hiểu đơn giản là một object gồm các cặp name - value gọi chung là property có thể sử dụng hay truy cập đến property của object khác , concept thừa kế xuất hiện trong rất nhiều ngôn ngữ lập trình nhưng trong JS nó đặc biệt hơn do sự đơn giản và mạnh mẽ của nó thường được gọi là prototypal inheritance (kế thừa nguyên mẫu)
Kế thừa nguyên mẫu là một tính chất của object trong Javascript nêu ra 2 điều
+ Khi một object được build thì js sẽ tự động tạo ra một propert là một object (proto) đây chính là prototype của object đó , đó là thứ nó được kế thừa từ Object (Function Contructor xây dựng sẵn để tạo ra object) và một prototype là một object nên cũng có thể có một prototype nữa cứ như vậy tạo thành prototype chain , object được tạo ra sẽ có quyền truy cập vào bất cứ property nào trên prototype chain của nó mà không cần phải chỉ rõ ra nó ở prototype nào.
+ Nếu Object được trỏ prototype của nó đến một prototype của object khác thì Object này có cũng có quyền truy cập trên Prototype Chain của object kia , đây gọi là chia sẻ property
Vậy làm thế nào để chúng ta có thể quản lý các prototype của object ?
=> Sử dụng Contructor Function để build Object
Function Contructor : hiểu đơn giản đây là một hàm dùng để xây dựng đối tượng ,
bạn chú ý rằng trong khi sử dụng hàm này từ khóa This nó sẽ trỏ về một object rỗng mà object này do toán tử new tạo ra , suy ra mọi cặp key - value mà this tham chiếu đến đều sẽ chuyển thành property của object rỗng được tạo ra (vì lúc này this đại diện cho object rỗng , this===object rỗng)
Khi một object được tạo ra từ Contructor Function thì prototype của nó sẽ được trỏ về prototype của Contructor Function tạo ra nó vì bản thân CF cũng là một object.
Nhận xét
Đăng nhận xét