Оглавление
- Вступление
- Что такое прото?
- Вывод
Вступление
JavaScript можно описать как язык на основе прототипа. Это связано с способностью объекта иметь прототип объекта, который позволяет им наследовать функции друг от друга. Вы можете прочитать больше об этом в MDN Web Docs Анкет
Но если вы когда -либо смотрели на массив в своей консоли, вы можете заметить __ Прото __, что именно это?
Что такое прото?
Если вы еще этого не сделаете, откройте консоль браузера. Теперь создайте пустой массив ([]). После того, как вы создаете массив, разверните его, используя > икона. Виола! Вы увидите ** Прото ** атрибут.
[] length: 0 __proto__: Array(0) // <--- Here it is! length: 0 constructor: ƒ Array() concat: ƒ concat()
Неважно, как вы создаете свой массив, вы всегда найдете атрибут Proto.
let example = [1,2,3,4,5] example (5) [1, 2, 3, 4, 5] 0: 1 1: 2 2: 3 3: 4 4: 5 length: 5 __proto__: Array(0) <-- woah! There it is again!
Каждый раз, когда мы строим новый массив, он использует конструктор массива, поэтому Proto ищет план массива. Он ссылается на все свойства и методы из этого плана. Если вы вводите Array.prototype , вы увидите тот же список методов, что и указанный выше.
Прото это способ JavaScript ссылаться на оригинальный прототип. И это относится к любому объекту React!
Попробуем еще один пример …
Object.prototype {constructor: ƒ, __defineGetter__: ƒ, __defineSetter__: ƒ, hasOwnProperty: ƒ, __lookupGetter__: ƒ, …}
Бум! Все методы и свойства.
Добавление к прототипу
Хотите верьте, хотите нет, вы можете добавить свои собственные методы в чертех массива.
Array.prototype.phrase = () => console.log("I like math")
Теперь любой существующий массив будет иметь этот метод фразы, включая пример массива, который мы только что создали:
(5) [1, 2, 3, 4, 5] 0: 1 1: 2 2: 3 3: 4 4: 5 length: 5 __proto__: Array(0) phrase: () => console.log("I like math") <--- Magic.
Если бы вы назвали метод фразы …
example.phrase() // "I love math"
Вывод
- Все в JavaScript ссылках/свойствах от его плана.
- Вы можете добавить и изменить функции прототипа в черте.
- Proto ссылается на оригинальные функции прототипа Blueprint.
Несмотря на то, что нужно копаться, это охватывает основы прототипа JavaScript и то, что он может предложить. Спасибо за чтение!
Оригинал: «https://dev.to/mmeurer00/javascript-proto-and-prototype-a2a»