Свойства prototype и __proto__ в JavaScript.
Ещё до того как в JavaScript появилось само ключевое слово "class" в JavaScript существовал другой способ создания классов. Нужно было лишь написать функцию, использовать в ней ключевое слово "this" и при помощи ключевого слова "new" обратиться к этой функции, создав, таким образом, экземпляр класса. Например: var Fn = function(tmp){ this.a = tmp } var inst = new Fn(3) У любой функции есть специальный пустой объект-"заготовка" для создания экземпляров класса. Как раз ссылка на этот объект, лежит в свойстве "prototype" у любой функции...
3 года назад
Введение в прототипы JavaScript
Источник: Nuances of Programming Объектно-ориентированный JavaScript Хотя JavaScript не является языком, основанным на классах, и не реализует объектно-ориентированное программирование в традиционном смысле, он предоставляет возможности и шаблоны, которые позволяют использовать концепции объектно-ориентированного программирования. Это можно назвать прототипным наследованием. Что такое прототип в JavaScript? Основная концепция прототипа в JavaScript заключается в том, что один объект может наследовать свойства и методы от другого...