
マイク
20.10.2016
11:23:50
Типа :symbol
Иначе просто неудобно

Дмитрий
20.10.2016
11:24:06

Ҫѐҏӗѫӑ
20.10.2016
11:24:08
ок Object.getOwnPropertySymbols

Google

Ҫѐҏӗѫӑ
20.10.2016
11:24:21
и все ваши приватные св-ва тут

Vladimir
20.10.2016
11:24:22
Их юзают, когда нужно добавить свойство объекту, но боятся коллизий

Ҫѐҏӗѫӑ
20.10.2016
11:24:24
бида

Дмитрий
20.10.2016
11:24:30
Это свойство можно получить только специально постаравшись

Vladimir
20.10.2016
11:24:34
никто не говорит, что они приватные

Ҫѐҏӗѫӑ
20.10.2016
11:24:55
кто-то говорит

Дмитрий
20.10.2016
11:25:03
Это защита от дурака а не от настырного самоубийцы

Джон
20.10.2016
11:25:14

Ҫѐҏӗѫӑ
20.10.2016
11:25:19
дуракам в код не надо вообще

Джон
20.10.2016
11:25:21
Это то, что они дают?

マイク
20.10.2016
11:25:21
Не работайте с дураками

Дмитрий
20.10.2016
11:25:22

Google

Vladimir
20.10.2016
11:25:23
они не более приватные чем non enumerable

Джон
20.10.2016
11:26:01
Да
и как их одинаковых потом доставать оттуда?

Дмитрий
20.10.2016
11:26:14
Каждый уникален
У тебя есть ссылка на него

Джон
20.10.2016
11:27:07

Ҫѐҏӗѫӑ
20.10.2016
11:28:29
приватность такая приватность

Дмитрий
20.10.2016
11:29:03
Да все, все , ты молодец

Vladimir
20.10.2016
11:29:07
ща покажу как побороть getOwnPropertySymbols

Ҫѐҏӗѫӑ
20.10.2016
11:29:19
его можно и без символов побороть
символы с приватностью никак не помогают
и они не для того

Vladimir
20.10.2016
11:30:09
ладно, не буду показывать

Ҫѐҏӗѫӑ
20.10.2016
11:31:11
они для toStringTag, toPrimitive и тд
метапрограммирование

Vladimir
20.10.2016
11:31:41
Причем здесь метапрограммирование?

KlonD90
20.10.2016
11:31:42
Атомы для консистетности же. Метапрограммирование это скорее декораторы

Vladimir
20.10.2016
11:31:47
Это просто интерфейсы

Ҫѐҏӗѫӑ
20.10.2016
11:31:50
просто механизмы, которые нужны для этого тоже заэкспозили
это не интерфейсы

Google

Aleh
20.10.2016
11:32:06
приватность норм на викмап

Vladimir
20.10.2016
11:32:11
Можно было сделать это просто строками, как toJSON

Aleh
20.10.2016
11:32:16
и приватную мапу около класса держать)

Vladimir
20.10.2016
11:32:21
или toString

Дмитрий
20.10.2016
11:32:23
а можно простенький примерчик?
_mark = Symbol('mark')
function mark (o){
o [_mark] = 'mark'
return o
}
print (o){return o [_mark]
? o [_mark] : 'no mark'}
let obj =mark({})
print(obj)
//=>'mark'

Ҫѐҏӗѫӑ
20.10.2016
11:32:24
просто valueOf и тд были ошибкой

Vladimir
20.10.2016
11:32:25
или valueOf

Ҫѐҏӗѫӑ
20.10.2016
11:32:49
это норм имя для метода
почему я должен терять при этом что-то нативное?
надо это обойти
как? символами
toPrimitive, toStringTag

Vladimir
20.10.2016
11:33:52
да нет, просто сейчас уже небезопасно это делать строкамии за обратной совместимости
точно также как и небезопасно добавлять новые поля на прототипы
особенно на Object.prototype

Ҫѐҏӗѫӑ
20.10.2016
11:36:07
так я и говорю
переопределил и попал

Джон
20.10.2016
11:39:00

Ҫѐҏӗѫӑ
20.10.2016
11:40:24
в этом примере символы не нужны
символы оверрейтед

Google

Джон
20.10.2016
11:42:08

Дмитрий
20.10.2016
11:42:16
Хорошо, пиши без них

Джон
20.10.2016
11:42:17
премер

Дмитрий
20.10.2016
11:42:29
Никто не заставляет

Джон
20.10.2016
11:42:47
так интересует ситуация, где без них никак

[Anonymous]
20.10.2016
11:42:52

Ҫѐҏӗѫӑ
20.10.2016
11:43:03
да. что-то не так?

Джон
20.10.2016
11:43:03
а не тот, где их можно вставить, а можно и без них

Admin
ERROR: S client not available

[Anonymous]
20.10.2016
11:43:16

Джон
20.10.2016
11:43:33
?
pornhub

Дмитрий
20.10.2016
11:44:38
И куча менее известных мета-символов

Джон
20.10.2016
11:45:43
я наверное еще не дорос до такого

Vladimir
20.10.2016
11:45:45
Вот питону пох
__iter__
И все

Джон
20.10.2016
11:45:51
маленький еще для символов

Vladimir
20.10.2016
11:46:27
Так что концепутально Symbol(str) это '__' + str + '__')

Google

Ҫѐҏӗѫӑ
20.10.2016
11:46:30
питон не лучший пример языка по сравнению даже с жс

Vladimir
20.10.2016
11:46:39
Да понятно
В нормальных языках нет таких проблем
Там для этого есть трейты

Дмитрий
20.10.2016
11:47:31

[Anonymous]
20.10.2016
11:48:04
что такое метапрограммирование в жс? eval?

マイク
20.10.2016
11:50:28
for (var prop in obj)

[Anonymous]
20.10.2016
11:51:25
помню задачу, когда нужно чтобы программа показала сама свой код, полностью

Vladimir
20.10.2016
11:51:46
quine

Дмитрий
20.10.2016
11:52:22

Джон
20.10.2016
11:52:42
тут понятно про скрытый слой свойств
теперь осталось понять как его можно использовать

マイク
20.10.2016
11:52:55

Ҫѐҏӗѫӑ
20.10.2016
11:55:41
(это несмешная шутка)
((но это правда))
про бабель говорили и спеки. вчера в гиттере Швайка настаивал, что асинки в v8 5.4 работают правильнее, чем оные в бабеле

Dreamerinnoise
20.10.2016
12:19:32
Что за гиттер?

Vladimir
20.10.2016
12:19:50
Чем правильнее?