Чем скорее Вы осознаете это, тем быстрее поймете Prototype. Это имеет несколько различных значений и следствий, которые выделены в следующих подразделах.
Как и в других объектно-ориентированных языках, у каждого объекта могут быть методы экземпляра класса. Это обеспечивает удобный синтаксис и делает код более легким для чтения.
["foo", "bar", "baz"].join(' ');
//=> "foo bar baz"
"foo bar baz".split(' ');
//-> ["foo", "bar", "baz"]
Это также гарантирует, что функции не загромождают глобальное пространство имен. Что проку от общей функции join, если она воздействует только на массивы? Или общей функции split, которая воздействует только на строки?
JavaScript имеет с полдюжины встроенных типов данных: Object, String, Array, RegExp (регулярные выражения), Boolean (логическое - true или false), и тип Date.
Я указал первым в списке тип Object, поскольку это корневой тип. Когда я говорю, что все в JavaScript является объектом, я также подразумеваю, что все в JavaScript является типом Object. Тип Object можно воспринимать как пустой тип данных, чистый холст, на котором основаны все остальные типы.
Мы можем проверить это с помощью оператора instanceof на некоторых встроенных типах JavaScript:
Array instanceof Object;
//-> true
RegExp instanceof Object;
//-> true
Date instanceof Object;
//-> true
String instanceof Object;
//-> true
Function instanceof Object;
//-> true
4