Comments 5
Наличие этого метода лишает нас возможности создавать по-настоящему приватные свойства.

Никто ничего не лишает. Приватных методов не существует, в любом популярном языке есть средства (возможно это хаки) для доступа к приватным методам.
Ну и Symbol странно использовать для приватных переменных. Если они вам действительно нужны — используйте статический (на класс в смысле) WeakMap.

Вообще private/protected области видимости нужны исключительно для описания api. Нужно договриться, например, называть приватные переменные с _, или $, как в angular и не заморачиваться с символами.
Вы, конечно же, правы. Это предложение и добавлено для того, чтобы однозначно указать на то, что такой возможности у нас нет.
Подскажите, что будет при наследовании?

Предположим, у меня есть Parent с символом role. Далее я делаю Child, который наследует свойства Parent. Будет ли доступ в Child к role у Parent?
А почему вы не используете возможности ES6 в примерах? Ну кроме Symbol.
Only those users with full accounts are able to leave comments. Log in, please.