Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 30.01.2016, 18:59
Профессор
Посмотреть профиль Найти все сообщения от Mаxmaxmаximus
 
Регистрация: 29.10.2015
Сообщений: 473

Erolast, пожалуйста, приведи какой нибудь аргумент ад рем
http://ru.wikipedia.org/wiki/Ad_hominem


Приватное свойство не будет доступно из вне инстанса так как у свойств будет использоваться префикс, который человек обязан будет не использовать из вне. этот префкс либо пробел либо _, таким образом достигается инкапсуляция внутренних свойств внутри класса. второе: свойство не будет доступно классам наследникам так как будет использоваться уникальный для класса префикс в стиле Math.random(), таким образом будут 2 префикса, один для защиты от доступа из вне обьекта _ второй для защиты доступа из дочерних классов

пример такого свойства this['_EventEmitter_5344355_events'] = []

первый префикс _ второй префикс "EventEmitter_5344355_"


таким образом достигается инкапсуляция.


что до протектед свойств для них достаточно просто префикс защищающий от доступа извне инстанса добавлять, то есть просто _


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


какие у тебя контраргументы? я внетерпении. правда


вообще есть еще способ с WeekMap, но его не везде эмулируешь и мы не получаем вообще ни какого плюса. так как в кофескрипте и так использовались служебные переменные а тут просто будут использоваться служебные свойства, и я не вижу ни единого минуса этого испоьлзования. кто нить знает хотя бы ОДНО слабое место моей идеи? ХОТЯ БЫ ОДИН недостаток?

Последний раз редактировалось Mаxmaxmаximus, 30.01.2016 в 19:07.
Ответить с цитированием
  #12 (permalink)  
Старый 31.01.2016, 07:51
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Цитата:
пожалуйста
Окей.

Во-первых, ты не прав в том, что тебе ответил создатель кофескрипта. Создатель - Jeremy Ashkenas, vendethiel - просто контрибьютор с парой десятков коммитов

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

Цитата:
Приватное свойство не будет доступно из вне инстанса так как у свойств будет использоваться префикс, который человек обязан будет не использовать из вне. этот префкс либо пробел либо _, таким образом достигается инкапсуляция внутренних свойств внутри класса. второе: свойство не будет доступно классам наследникам так как будет использоваться уникальный для класса префикс в стиле Math.random(), таким образом будут 2 префикса, один для защиты от доступа из вне обьекта _ второй для защиты доступа из дочерних классов
Цитата:
устанавливать эти свойства энумерабле false чтобы они еще и не итерировались извне
В таком виде, как по мне, вполне пойдет.

Только два момента:
1) на гитхабе ты про рандомную прибавку к имени свойства ничего не говорил;
2) зачем вообще трахаться со всеми этими префиксами/суффиксами, когда можно просто заюзать символы из ES6? Заодно гарантировано исключается возможность коллизии.
class EventEmitter
  eventListeners = Symbol()
 
  constructor: ->
    @[eventListeners] = []

  getEventListeners: -> @[eventListeners]
 
eventEmitter = new EventEmitter()
console.log eventEmitter; #empty object
console.log eventEmitter.getEventListeners(); #array

Последний раз редактировалось Erolast, 31.01.2016 в 08:00.
Ответить с цитированием
  #13 (permalink)  
Старый 31.01.2016, 11:55
Профессор
Посмотреть профиль Найти все сообщения от Mаxmaxmаximus
 
Регистрация: 29.10.2015
Сообщений: 473

Сообщение от Erolast
на гитхабе ты про рандомную прибавку к имени свойства ничего не говорил;
1) говорил вот скриншот с доказательствами

2) зачем вообще трахаться со всеми этими префиксами/суффиксами, когда можно просто заюзать символы из ES6? Заодно гарантировано исключается возможность коллизии.

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


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

for i in [1,2,3]
private[i+'trololo'] = 11

как тогда обратиться к private.i2 ?? где хранить его символ и когда его создавать? и как узнать какую строку вернет выражение в аксессоре [] ?

Сообщение от Erolast
Во-первых, ты не прав в том, что тебе ответил создатель кофескрипта.
у кофескрипта не один создатель а все кто контребьютеры. следовательно я прав и верно употребил слово. я так его и задумывал ты просто недопонял. в данном случае "создатель" не указывает на кого то ИЗ НИХ. в данном случае создатель указывает на выборку из всех людей человечества, людей котоыре разрабатывают кофи. ты просто недопонял и это снова моя правота. это чувак с которым я часто списываюсь и он если бы дал свое добро на эту идею то она была бы реализована и вписана в билд 100%. и не важно сколько он лично коммитов сделан, с автором кофескрипта он трется.

Сообщение от Erolast
Во-вторых, ты не прав в том, что считаешь, что они вообще тебе чем-то обязаны.
Не, я так не считаю, следовательно я снова прав. во вторых я дал им идею, бесплатно помог им УЛУЧШИТЬ ИХ ПРОДУКТ, и я охуеваю от тупости когда они без какой либо причины отказываются. в конце я им так и написал что мы заебались вас ждать и я пилю свой форк с блекджеком, es7, генераторами итераторами и шлюхами.

Последний раз редактировалось Mаxmaxmаximus, 31.01.2016 в 12:00.
Ответить с цитированием
  #14 (permalink)  
Старый 01.02.2016, 15:58
Профессор
Посмотреть профиль Найти все сообщения от Mаxmaxmаximus
 
Регистрация: 29.10.2015
Сообщений: 473

https://github.com/jashkenas/coffeescript/issues/4195
Ответить с цитированием
  #15 (permalink)  
Старый 01.02.2016, 16:13
Профессор
Посмотреть профиль Найти все сообщения от Mаxmaxmаximus
 
Регистрация: 29.10.2015
Сообщений: 473

ну посмотрите, этот мудак опять ничего не смог противопоставить и признал что мои аргументы верны но просто закрыл тикет https://github.com/jashkenas/coffeescript/issues/4195

следовательно я перехватываю управление кофескриптом в свои руки раз им рулят такие неадекватные мудаки. ну а хули делать) опенсорс.
Ответить с цитированием
  #16 (permalink)  
Старый 01.02.2016, 20:21
Профессор
Посмотреть профиль Найти все сообщения от Mаxmaxmаximus
 
Регистрация: 29.10.2015
Сообщений: 473

Когда кофескрипт пилят мудаки

Ответить с цитированием
  #17 (permalink)  
Старый 01.02.2016, 20:22
Профессор
Посмотреть профиль Найти все сообщения от Mаxmaxmаximus
 
Регистрация: 29.10.2015
Сообщений: 473


Последний раз редактировалось Mаxmaxmаximus, 01.02.2016 в 20:28.
Ответить с цитированием
  #18 (permalink)  
Старый 01.02.2016, 21:50
Аватар для Lemme
Профессор
Отправить личное сообщение для Lemme Посмотреть профиль Найти все сообщения от Lemme
 
Регистрация: 15.07.2015
Сообщений: 511

Mаxmaxmаximus, google translate тебя затралировал. =)
Ответить с цитированием
  #19 (permalink)  
Старый 01.02.2016, 22:53
Профессор
Отправить личное сообщение для Decode Посмотреть профиль Найти все сообщения от Decode
 
Регистрация: 31.01.2015
Сообщений: 576

Ответить с цитированием
  #20 (permalink)  
Старый 02.02.2016, 12:23
Профессор
Посмотреть профиль Найти все сообщения от Mаxmaxmаximus
 
Регистрация: 29.10.2015
Сообщений: 473

Сообщение от Lemme
google translate тебя затралировал. =)
Нет) так я через него и писал, все одобрено. Я типа под хача кошу
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка свойства стиля levshaszr Общие вопросы Javascript 9 13.11.2015 15:42
Изменение css свойства Rumis jQuery 2 21.05.2013 11:55
Поиск неизвестного свойства функцией __set() romantik2011 Серверные языки и технологии 7 03.08.2011 19:26
Получить все свойства как строку. boilroom Events/DOM/Window 1 20.06.2011 17:37
Как при чтении или записи свойства объекта вызывать функцию danik.js Общие вопросы Javascript 3 16.09.2010 17:57