Nếu bạn muốn nắm vững được ngôn ngữ Javascript thì bạn cần phải biết được Prototype Javascript là gì? Đây là một khái niệm cốt lõi và cơ bản của ngôn ngữ lập trình Js này. Thay vì sử dụng kiểu kế thừa class-based thì Javascript lại sử dụng Prototype. Chính vì vậy nên thuộc tính này trở nên vô cùng quan trọng mà bạn cần nắm vững.
Lưu ý, để có thể hiểu được Prototype trong Javascript thì đầu tiên bạn phải biết về Object trong Javascript trước đã. Do đó, hãy tìm hiểu về Object trước khi tiếp tục bài viết này nhé.
Mục Lục
Prototype Javascript là gì?
Chúng ta đều biết Prototype là một thuộc tính thuộc Javascript. Chính vì vậy, để có thể hiểu được Prototype thì đầu tiên chúng ta cần biết về Javascript đã.
Javascript là gì?
Javascript là một ngôn ngữ lập trình dựa trên văn bản được sử dụng cả ở phía máy của khách và phía máy chủ. Ngôn ngữ này cho phép bạn tạo ra các trang web tương tác.
Javascript là gì?
Trong khi HTML và CSS là những ngôn ngữ cung cấp cấu trúc và phong cách cho các trang web. Thì Javascript lại cung cấp cho các trang web những yếu tố tương tác thu hút người dùng. Các ví dụ phổ biến về Javascript mà bạn có thể đã sử dụng hàng ngày như hộp tìm kiếm trên Amazon, video tóm tắt tin tức được nhúng trên The New York Times hoặc làm mới nguồn cấp dữ liệu Twitter của bạn.
Việc kết hợp Javascript sẽ cải thiện trải nghiệm người dùng trên trang web. Điều đó được thực hiện bằng cách chuyển đổi nó từ một trang tĩnh thành một trang tương tác. Tóm lại, Javascript giúp thêm hành vi người dùng vào các trang web.
JavaScript chủ yếu được sử dụng cho các ứng dụng dựa trên web và trình duyệt web. Cụ thể như:
- Thêm hành vi tương tác vào các trang web: trang web sẽ không còn là một văn bản tĩnh nữa mà sẽ có sự tương tác.
- Tạo web và ứng dụng di động: JavaScript không chỉ dành cho các trang web… mà còn được sử dụng để tạo các ứng dụng bạn có trên điện thoại và máy tính bảng của mình.
- Xây dựng máy chủ web: JavaScript được sử dụng nhiều nhất trên front end của mọi thứ. Nhưng nó cũng là một ngôn ngữ đủ linh hoạt để sử dụng trên cơ sở hạ tầng back end.
- Phát triển ứng dụng máy chủ, phát triển trò chơi: JavaScript cho khả năng rò chơi trực tiếp từ trình duyệt web.
Tính ứng dụng cao vào nhiều lĩnh vực
Prototype là gì?
Sau khi đã hiểu được Javascript là gì thì chúng ta lại tiếp tục quay về với vấn đề Prototype Javascript là gì? Thực tế, prototype chính là một đối tượng object trong Javascript. Nó được gọi là Prototype object có nghĩa là đối tượng Prototype. Chúng ta phải lưu ý để không nhầm lẫn với thuộc tính Prototype của các hàm.
Nó là cơ chế, mà các object trong ngôn ngữ Javascript kế thừa những tính năng từ một object khác.
Tất cả các object trong ngôn ngữ lập trình Javascript đều có một Prototype. Các object này kế thừa các phương thức (methods) cũng như các thuộc tính (properties) prototype của mình.
Bạn đọc tham khảo thêm: CI CD là gì? Những lợi ích của CI CD mang lại
Prototype JavaScript dùng để làm gì?
Prototype dùng để kế thừa trong Javascript
Bạn đã biết Prototype Javascript là gì? Vậy bạn có biết nó dùng để làm gì không? Thực tế, nhiều ngôn ngữ lập trình khác sử dụng class để kế thừa trường hoặc hàm của một object. Nhưng do ở ngôn ngữ Javascript không có khái niệm của class. Chính vì vậy cho nên những Prototype được sử dụng để kế thừa các hàm, trường của một object.
Nói nôm na, Prototype có nhiều điểm giống với class trong các ngôn ngữ lập trình khác.
Prototype giúp truy cập tới các thuộc tính, phương thức của đối tượng
Prototype chain trong JS dùng để tìm đối tượng theo chuỗi
Đặc tính prototype của đối tượng – prototype object, là một “object cha” chứa các thuộc tính cũng như phương thức được kế thừa. Vì thế, khi ta gọi tới một thuộc tính của đối tượng (ví dụ: student1.age). Ban đầu Javascript sẽ tìm kiếm trong thuộc tính riêng của đối tượng. Nếu như không tìm thấy, thì nó sẽ tiếp tục tìm trong prototype của đối tượng. Và điều này sẽ lặp lại tiếp với prototype của đối tượng prototype, …
Quá trình lặp lại liên tục này được gọi là chuỗi prototype trong Javascript. Chính điều này cùng với thuộc tính prototype của hàm tạo nên cơ chế kế thừa prototype-based cho Javascript.
Bạn đọc tham khảo thêm: React Native là gì? Những ưu điểm của React Native bạn cần biết
Một số điều cần lưu ý với Prototype Javascript
Khi sử dụng Prototype Javascript chúng ta cần lưu ý một số điểm như sau:
Trong ngôn ngữ lập trình Javascript, một hàm cũng được coi là 1 object. Những hàm có một thuộc tính được gọi là thuộc tính prototype. Và bản thân thuộc tính prototype này có giá trị là 1 object.
Nếu như chúng ta sử dụng hàm để tạo ra 1 mẫu khởi tạo đối tượng. Thì có thể thêm các thuộc tính hoặc là phương thức vào thuộc tính prototype của hàm khởi tạo. Điều này nhằm để thực hiện kế thừa. Tất cả các đối tượng con được tạo ra bởi hàm khởi tạo đều sẽ có các giá trị trong thuộc tính prototype của hàm này.
Các object trong Javascript còn có một khái niệm được gọi là prototype attribute. Đặc tính này có giá trị trỏ về prototype object mà nó kế thừa thuộc tính. Chúng ta sẽ dùng thuộc tính __proto__ để truy cập tới prototype object.
Sử dụng thuộc tính __proto__ để truy cập tới prototype object
Vì prototype object được chia sẻ giữa tất cả các object được tạo bằng cách sử dụng hàm khởi tạo. Do đó mà các thuộc tính và phương thức của nó cũng được chia sẻ giữa tất cả các object với nhau.
Ví dụ như nếu một thuộc tính object A sửa đổi một thuộc tính của prototype có giá trị nguyên thủy thì các đối tượng khác sẽ không bị ảnh hưởng. Bởi object A sẽ tạo ra một thuộc tính trên các object của nó.
Prototype trong Javascript được tạo ra như thế nào?
Như đã nói tới ở trong phần lưu ý phía trên. Mỗi hàm khởi tạo đối tượng cũng được xem là 1 đối tượng prototype. Chinh vì vậy cho nên cách đơn giản để tạo ra 1 đối tượng prototype chính là khai báo một hàm khởi tạo:
Một đoạn code khởi tạo hàm
Đoạn code trong hình ảnh trên vừa tạo ra một hàm khởi tạo. Hàm khởi tạo này là hàm Person(_age, _name). Trong đó, thuộc tính prototype của hàm Person(_age, _name) này lại có chứa thuộc tính “height”. Chính vì vậy mà một đối tượng khi được tạo ra từ hàm khởi tạo này ta sẽ mang 3 thuộc tính là: age, name, và height.
Nếu chúng ta truy cập prototype object của object vừa khởi tạo (instance vừa tạo). Thì chúng ta sẽ thấy object này là một object chứa 1 hàm khởi tạo cùng với 1 thuộc tính. Thuộc tính này là “height”.
Trên đây là tổng hợp những thông tin khái lược nhất về Prototype Javascript là gì. Đây thực sự là một cơ chế vô cùng quan trọng của ngôn ngữ lập trình Javascript. Chúng ta có thể thấy chúng tương tự như là class vậy nhờ vào khả năng lưu trữ các hàm/trường. Hy vọng những thông tin chia sẻ, tổng hợp trên đây sẽ phần nào hữu ích đối với quý vị.