Прототипируемое наследование в Javascript

Доброго времени суток, уважаемые читатели моего блога!

Сегодня, как и обещал в предыдущей статье, темой самой статьи будет программирование, а точнее — поговорим о протитипируемом наследии в JavaScript.

Итак, устраивайтесь поудобнее — начинаем.

Как такового наследования в Javscript’е не предусмотрено. Но ее можно реализовать самому, разными способами. Одним из наиболее простых и эффективных способов является реализация через прототипы объектов.

Ко мне часто поступают вопросы про хостинг, которым я пользуюсь и поэтому решил указать хостинг в статье https://sprinthost.ru. Вы можете попробовать попользоваться хостингом 30 дней бесплатно. Чтобы понять, как будет работать Ваш сайт на этом хостинге просто перенести свой сайт (в этом поможет поддержка хостинга бесплатно) и и таким образом сможете понять подходит хостинг Вам или нет. На этом хостинге находятся сайты с 20 000 тысяч посещаемость и сайты чувствуют себя отлично. Рекомендую! Да, если делать оплату на 1 год то получаете скидку 25%. И что мне нравится - тех. поддержка всегда помогает в технических вопросах, за что им спасибо. Как Вы понимаете не всегда проходит всё гладко и нет желания, чтобы сайт не был доступен тем самым страдал трафик и доход.

В прототипируемых языках, объекты наследуются от объектов. Однако, в Javascript не хватает оператора который выполняет эту операцию. Вместо этого есть оператор new:

new f() 

он создает новый объект, который наследует

f.prototype 

Этот, скажем так костыль, был введен для того чтобы язык казался более знакомым классическим программистам, но это не удалось т.к. мы можем наблюдать какого низкого мнения Java программисты о Javascript’e. В Javascript’е также нет конструктора объектов. Это мешает правильной прототипируемости в Javascript. В результате чего существует очень мало программистов знающих как можно эффективнее использовать язык.

Прототипируемое-наследование-в-Javascript

К счастью, легко можно создать оператор который реализует истинное прототипируемое наследование:

function object(o)
{
        function F(){}
        F.prototype = o;
        return new F();
}

Функция object решает эту проблему. Он берет старый объект как параметр и возвращает новый пустой объект который наследует старый объект. Объекты которые наследуют объекты. Что может быть более объектно ориентированным!?

Итак, вместо классов, создаете прототипируемые объекты. И затем функцией object создаете новые экземпляры. Объекты в Javascript’е можно менять, добавляя новые поля и методы. И затем использовать как прототипы для новых объектов. Не обязательно иметь классы для создания кучи одинаковых объектов.

Для удобства можно написать функцию которая будет запускать функцию object вместо нас. С помощью такой функции можно реализовать привилегирование. В этом направлении можно придумать очень много интересных вещей.

На этом буду заканчивать))!

Следующая статья, как я думаю, опять будет из серии программирования!

Чтобы ничего не пропустить — подписывайтесь на новости моего блога, чтобы все время быть в курсе!

Но на сегодня все — с Вами был ваш Юрич!


Обо мне
Юрич:
Занимаюсь созданием сайтов на WordPress более 6 лет. Ранее работал в нескольких веб-студиях и решил делиться своим опытом на данном сайте. Пишите комментарии, буду рад общению.

Заказать сайт