Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   В чем суть приватных методов? (https://javascript.ru/forum/misc/25625-v-chem-sut-privatnykh-metodov.html)

Mахmахmахimus 10.02.2012 20:10

В чем суть приватных методов?
 
В чем суть приватных методов свойств?
В том чтобы к ним нельзя было обратится через точку, и в том чтобы их нельзя было перезаписать, то есть если создашь паблик свойство с таким же именем, то методы все ровно будут использовать приватное свойство, я правильно понимаю суть?

То есть нужно сделать так чтобы методы искали идентификаторы сначала в приватных свойствах, потом если не находили, то использовали паблик свойства, потом если не находили там, то использовали глобальную область видимости?

monolithed 10.02.2012 21:45

Mахmахmахimus,
по второму кругу пошел? ;)

Mахmахmахimus 10.02.2012 22:35

Не, я пытаюсь первый круг доделать и понял что я не понял сути приватных)
Я просто подумал, если суть в том чтобы имя было свободными, то что мешает называть приватные просто с префиксом __ .
Да, и у меня вопрос, можно как то задваавть флаги свойствам, не перебираемый, скрытый и.т.п. ? в 1.7 версии

monolithed 10.02.2012 23:05

Цитата:

Сообщение от Mахmахmахimus
то что мешает называть приватные просто с префиксом __

это имеет смысл в Python, в JS нет.
Цитата:

Сообщение от Mахmахmахimus
Да, и у меня вопрос, можно как то задваавть флаги свойствам, не перебираемый, скрытый и.т.п.

Object.defineProprty() и пр. из Object в ECMASript 5

Mахmахmахimus 10.02.2012 23:12

Цитата:

Сообщение от monolithed
это имеет смысл в Python, в JS нет.

И почему же в js не имеет смысла разделять простанство имен свойств на __ и без __?

monolithed 10.02.2012 23:23

Цитата:

Сообщение от Mахmахmахimus
И почему же в js не имеет смысла разделять простанство имен свойств на __ и без __?

потому что в JS __ - лишь префикс переменной и никакого специального значения в объекте активации не имеет.

Mахmахmахimus 10.02.2012 23:31

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

Например у меня есть приватное свойство __go

в нем лежить функция ХОДИТЬ. я потомку могу добавить свойство go и использовать его как захочу, при том приватное свойство потомка __go не запорися. Я буду ограничен лишь тем что не смогу ставить 2 жестких пробела в своих паблик именах.

poorking 10.02.2012 23:52

Mахmахmахimus,
Ну тогда уж это будет protected, а не private, оно будет наследоваться

Mахmахmахimus 11.02.2012 00:37

poorking,
а, ясно, я все еще не понимаю зачем нужны приватные свойства, по сути это свойства СУЩНСОТЕЙ к которым имеют доступ только что?

monolithed 11.02.2012 11:55

Цитата:

Сообщение от Mахmахmахimus
я все еще не понимаю зачем нужны приватные свойства

Я уже советовал почитать литературу или пойти на курсы кройки шитья


Часовой пояс GMT +3, время: 02:33.