All streams
Search
Write a publication
Pull to refresh
32
0
Dmitrii Pakhtinov @devote

User

Send message
Было бы глупо делать только для ИЕ ) Конечно же они работают во всех браузерах.
Да, как отметил trikadin, для браузеров ИЕ ниже 9-й версии они реализованы через vbscript-вставки, но для остальных браузеров используется нативный метод Object.defineProperty. Вы можете скачать эту небольшую библиотеку и посмотреть пример того как это реализовано.
>> Автор прочитал Стефанова и вдохновился?
Нет я не читал его.

Да я в курсе что есть уже много готовых велосипедов, но написание своего велосипеда дает не просто возможность использовать велосипед, но и дает понимание того как работает этот самый велосипед.

Плюс добавлю, что не все велосипеды хороши и удобны. Для кого-то удобен трех-колесный, для кого-то много-скоростной. Поэтому люди и пишут свои собственные что бы получить то, чего нет в других велосипедах. Плюс получают опыт и знания основ программирования, поэтому критиковать человека за то что он хочет учиться/развиваться, я считаю не разумно. ИМХО

Но все равно спасибо за критику.

Это мы в курсе, от того и сделана попытка реализации классов в JS.

Но спасибо за критику.
Да конечно же возможность использования наследования методом присваивания прототипу наследника родительского класса проста в использовании, но имеет небольшой ряд ограничений. При наследовании через прототипы все порожденные экземпляры будут использовать общие приватные переменные родительского класса, контекст в родительском классе будет иметь ссылку на родительский класс, который мы вызовем через superClass, что требует разработчику использовать каждый раз call, apply и т.д. для передачи родителю нужного контекста.

Так же в моей реализации есть возможность использования сеттеров/геттеров для более старых ИЕ. Понятно дело что подобное поведение не особо заслуживает на написание дополнительных библиотек. Но решение описанное в статье дает возможность окунуться в подобие Настоящих классов, где можно перехватить любой вызов методов, организовать псевдо абстракцию, приватность.

Но я конечно не буду утверждать о том что данная реализация лучшее в корне для всех. Нет, оно лишь дает возможность писать немного иначе, не так как привычно для JavaScript. И конечно же ни в коем случае не заставляю вас отказываться от более удобных для вас способов.
12 ...
7

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity