Я не знаю, как по-другому объяснить.
|
Класс это функция которая будет генерить новые объекты.
Private это свойство которое создается каждый раз и засовывается в носовоздаваемого ребенка. если написать дете.имяПриватСвойства то приват свойство не обнаружится, в этом его суть! Видно это свойство ТОЛЬКО методам запущенным относительно этого ребенка через точку При том если эти методы былыи описаны в классе! Public это свойство которое создается каждый раз для каждого ребенка и засовывается в него напрямую через точку. Методы засунутые туда, так же будут иметь доступ к его приватным свойствам и прочей внутренней херне. при том эти методы и свойства ДОСТУПНЫ снаружи через точку дете.имяПубликСвойства Static это общее свойство для всех детей, если создать детеныша, изменить у него статик совойство, потом создать нового детеныша, то у нового это статик свойство тоже будет заменено! Статик свойства не доступны через точку снаружи дете.имяСтатикСвойства но доступны всем методам вызванным относительно ребенка если они были описаны в классе. вопрос, что такое protect? исходя из информации на сайтах и ту что вы мне дали я понял что это Protect свойство которое че-то там наследование (я еще пока даже делать не думаю) и.т.п. оно мне пока не нужно, потом как буду делать наследование будем протект добавлять. пока сделаю просто классы |
Классы можно сделать наследниками как классов так и уже созданных детей? я правильно понимаю?
|
Цитата:
|
ну я подумал я проще сделаю как мне кажется будет удобным и логичным, а потом просто буду переделывать что скажут, чтобы другим было привычней и удобней, пока вроде получается, седня ближе к 4 утра выложу код наверное.
пока все сделал через замыкания, но это не дает возможность добавлять новые методы которые получат достууп к тому что в замыканиях. по этому думаю как бы покрасивее все это упаковать без замыканий) |
![]() |
Если внутри метода обратится к this.prop
то prop будет сначала искаться в __private__ потом в __static__ потом в __public__ если захочется явно указать где искать свойство, то можно обратится так this.public.prop или this.private.prop this.static.prop добавлять свойства можно так же this.static.prop = 300 //и у всех котов появится свойство prop равное 300 ЕДИНСТВЕННЫЙ косяк, если нужно добавить МЕТОД изнутри другого метода, то нужно писать не так this.private.prop = function(){} а так this.private("prop", function(){}) ТОЛЬКО ТАК вновь добавленные методы смогут работать с уже созданными обьектами. Но в новом javascript Используя прокси я этот гемор устраню)) |
Вопрос, я не должен мочь обращаться к статик свойству вот так
cat.staticProp ??? Иными словами static это ОБЩИЕ приватные свойства сущностей? |
В JavaScript это будет всего-лишь свойство самого конструктора
|
Цитата:
|
Часовой пояс GMT +3, время: 11:34. |