Prototypes là gì

  -  

Ssống dĩ ta nói điều đó là vì khi hỏi object 1 property như thế nào đó, nếu bạn dạng thân nó ko làm dc, nó đã dựa vào prototype của nó, prototype này tuy-mặt-đầy-thẹo dẫu vậy nếu như vẫn không làm cho nổi, đang lại thường xuyên hỏi prototype cung cấp trên cùng cứ đọng gắng cho tới thằng prototype đại ca duy nhất, quyền lực tối cao độc nhất vô nhị có tên là Object.prototype mà lại giang hồ còn gọi là tía già.

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

Object.getPrototypeOf(Object.prototype)// nullTrên cung cấp của Object.prototype là ko bao gồm, vì vậy nó là soái ca nhất.

Array hết sức giữ manh còn chỉ nghe lệnh cấp cho trên của chính nó là Array.prototype, nhưng đáng tiếc thằng này cũng chính là lính của Object.prototype thôi.

Function chợ búa cũng như vậy, hết bản thân vị đại ca Function.prototype của chính nó. Vị đại ca này, Tuy to gan lớn mật tuy thế vẫn luôn là lũ em của Object.prototype.

Object.getPrototypeOf(<>) === Array.prototype// trueObject.getPrototypeOf(Function) === Function.prototype// true

*

do vậy ta có thể nói trong javascript, đại nhiều phần các là bộ đội của object, xuất xắc có thể nói rằng trong javascript toàn thể đông đảo là object, quanh đó cặp vk ông chồng xuyên suốt ngày sống trong cổ chiêu tập, không mê say ra đường: anh dương-undefined với chị tiểu-long-null.

Hiểu đặc tính của prototype, ta hoàn toàn có thể lợi dụng nó để thêm công dụng mang lại môn đồ, hình dạng nlỗi nếu sư phú tất cả giết nạp năng lượng thì đồ đệ cũng đề nghị được chia chén canh.

Xem thêm: Top 10 Trái Ác Quỷ Mạnh Nhất Trong One Piece, 10 Trái Ác Quỷ Hiếm Và Mạnh Nhất One Piece

Lấy ví dụ, giả dụ lúc đầu vk chỉ biết mổi nấu bếp ăn uống.

function Wife() this.cook = function() console.log("làm bếp mì chua-cay-hao-hao"); var ngoctrinch = new Wife();ngoctrinh.cook(); // in ra nấu nướng mì ...mà thật ra thì ăn mì mãi cũng chán, cho nên vì vậy chúng ta sẽ thêm hào kiệt mang lại vợ

// thêm tính năng ấy vào function vk.Wife.prototype.ay = function() // công dụng này khó, vày các bạn từ bỏ code !Bởi vậy, chúng ta biết ngoctrinch là đệ tử của Wife, tuyệt nói theo cách khác là instance của constructor Wife. Do kia ngoctrinc ngay chớp nhoáng biết "ấy". Chúng ta hoàn toàn có thể trực tiếp Gọi ngoctrinc.ay() nhằm chất vấn.

Nguy hiểm hơn nữa, chúc ta có thể thẳng dạy đến Object.prototype xuất xắc gắng võ công makeSandwich:

Object.prototype.makeSandwich = function() console.log("suvì make me a sandwich");Và như thế ngoctrinc đang biết làm cho bánh

ngoctrinch.makeSandwich();// suvày make me a sandwichLà một coder giỏi tò với dò, chúng ta buộc phải chất vấn lại coi ngoctrinch biết làm cho phần lớn gì.

for(var skill in ngoctrinh) console.log(skill); // cook (từ biết)// ay ( bà mẹ vợ dạy)// makeSandwich ( bà bầu của bà bầu vợ dạy )Tuy nhiên, thiệt bất thần ngoctrinh còn biết toString(), toLocaleString(), hasOwnProperty() v..v.. nữa, mấy trang bị này là đá quý khuyến mãi Tặng kèm từ bỏ phía 2 bên nhà nội nước ngoài của ngoctrinh, mà lại bọn họ ko đề xuất.

Chưa không còn, ai lại hy vọng 1 cô vợ nhưng mà tuỳ thời sẽ bị công ty bà xã dạy chế tạo đông đảo đồ vật không giống, chẳng thể kiểm soát và điều hành dc. Một ngày đẹp ttách làm sao đó, lỡ như:

Object.prototype.karate = function() console.log("cần sử dụng Khi chồng nhậu khuya");Thì coi nlỗi ngừng. Do kia Một trong những ngôi trường phù hợp này, Khi nhưng mà chúng ta ko buộc phải đến sức mạnh của prototype, ko đề xuất thừa kế gì cả, thì Object.create(null) sẽ giúp chúng ta tạo ra object thanh khiết, trong sáng ko kế thừa.

Xem thêm: Merger And Acquisition Là Gì, M&A Là Gì Khái Niệm M&A Trong Kinh Doanh

var ngoctrinch = Object.create(null);Object.prototype.karate = function() console.log("dùng Lúc ông xã nhậu khuya");ngoctrinch.karate(); // TypeError: ngoctrinc.karate is not a function// yay so much win !Vậy là chúng ta tha hồ nước đi nhậu về muộn.