PROTOTYPE LÀ GÌ

Mnghỉ ngơi đầu

Prototype là khái niệm cốt yếu cơ bạn dạng vào JavaScript tương đối đặc biệt quan trọng nhằm thực hiện OOP.. vào JavaScript. Vì JavaScript là một trong những prototype-based language, không tồn tại có mang class như các ngôn ngữ phía đối tượng người dùng không giống hướng đối tượng người dùng khác. Trong bài viết này, ta đang mày mò phương pháp thao tác làm việc của prototype hoàn toàn có thể hiểu nôm mãng cầu là thừa kế (inheritance) làm việc javascript.

Bạn đang xem: Prototype là gì

Prototype là gì?

Prototype là phép tắc mà lại các object vào javascript kế thừa những anh tài xuất phát từ một object không giống. Tất cả những object vào javascript đều sở hữu một prototype, và những object này kế thừa các thuộc tính (properties) tương tự như phương thức (methods) trường đoản cú prototype của chính mình.

quý khách phải chăm chú rằng bản thân prototype là một trong những object trong JS, được Hotline là prototype object (đối tượng người tiêu dùng prototype). Chúng ta cần phải biết điều đó nhằm tránh nhầm lẫn với thuộc tính prototype của function.


*
*
*

Đoạn ví dụ bên trên vừa tạo ra một function khởi tạo nên là hàm Person(_age, _name). Thuộc tính prototype của hàm này lại đựng thuộc tính height. Cho nên một object được tạo thành trường đoản cú function khởi tạo ra này ta sẽ sở hữu được 3 ở trong tính: age, name, và height.

Ta hoàn toàn có thể truy vấn prototype object của đối tượng người tiêu dùng vừa sinh sản (instance vừa tạo) giúp xem object này là 1 object đựng 1 hàm khởi chế tác và 1 ở trong tính height.

Xem thêm: Download Bá Vương Chi Mộng Bá Vương Chi Mộng, Mộng Bá Vương

Tại sao prototype lại quan trọng đặc biệt vào Javascript?

Sự kế thừa trong Javascript

Để thực hiện kế thừa trong Js, các bạn chỉ việc tạo ra 1 hàm khởi sản xuất. Sau đó thêm những nằm trong tính và cách làm vào nằm trong tính prototype của hàm khởi tạo ra này.

Các instance tạo nên vị hàm khởi tạo nên này đang cất những nằm trong tính cùng cách thức được định nghĩa sống bên trên. Do Javascript không có định nghĩa class đề xuất để triển khai việc kế thừa để mở rộng ứng dụng nlỗi những ngôn ngữ OOP khác, bọn họ đề nghị Prototype.

//Tạo ra 1 hàm khởi sản xuất cơ sởfunction Animal(_age) this.age = _age; //cũng có thể thêm ở trong tính vào thuộc tính prototype của hàm khởi tạoAnimal.prototype.showAge = function() console.log( this.age );; //Tạo ra 1 hàm khởi tạo nhỏ (sẽ dùng để làm thừa kế hàm cơ sở)function Dog(_color) this.color = _color;//Thực hiện kế thừa, gán hàm khởi sinh sản của Animal mang lại prototype của DogDog.prototype = new Animal();Dog.prototype.showMàu sắc = function() console.log( this.color );; //Kiểm tra sự kế thừavar chophuquoc = new Dog("yellow");chophuquoc.age = 3;chophuquoc.showAge(); //3chophuquoc.showColor(); //yellowĐoạn code trên thì object chophuquoc sử dụng hàm showAge() thuộc Animal prototype vì chưng ta vẫn gán hàm khởi tạo ra của Animal vào prototype của Dog. Như vậy bạn cũng có thể thấy rõ sự kế thừa vào js. Object chophuquoc sẽ kế thừa các gì sẽ có vào Dog.prototype với thừa kế luôn luôn các ở trong tính nhưng Animal.prototype gồm.

Truy cập lệ các nằm trong tính của đối tượng: Prototype chain


Prototype vô cùng quan trọng vào câu hỏi hỗ trợ chúng ta truy vấn tới các ở trong tính với cách thức của đối tượng. Khi bọn họ truy cập vào một Property của một Object, JavaScript vẫn kiếm tìm Property đó bên phía trong bao gồm Object. Nếu không tồn tại nó vẫn thường xuyên tìm lên ở trên Prototype của Object cùng cđọng tiếp tục như vậy cho đến lúc gặp Object.prototype thì giới hạn cùng tạo ra kết quả (undefined nếu không tìm kiếm thấy).

Quá trình tái diễn này được Điện thoại tư vấn là chuỗi prototype (prototype chain) trong Javascript. Chính vấn đề đó cộng thuộc tính prototype của function khiến cho bề ngoài thừa kế prototype-based mang lại Javascript.