@Dmitry221060

Как получить значение объекта по ключу после __proto__?

Есть объект - https://i.paste.pics/a354e443bb05bc7ad6c92117edc59...
Нужно получить значение [[Scopes]], но .onClick["[[Scopes]]"] - не работает. Причём, если добавить свой ключ, [[Scopes2]], то он помещается наверх и вызывается без проблем - https://i.paste.pics/f7775b5973963e2173ebd3e525446...

Вопрос - как мне вызвать [[Scopes]]?

UPD
Я так понял, это не ключ, он не перезаписывается. Судя по всему, это что-то реактовское. Но переменную с ним я найти не могу. Просто .scope() - тоже не работает.
  • Вопрос задан
  • 209 просмотров
Решения вопроса 1
@dimentimor
Каждое выполнение функции хранит все переменные в специальном объекте с кодовым именем [[scope]], который нельзя получить в явном виде, но он есть .
Каждый вызов var... - всего лишь создает новое свойство этого объекта, а любое упоминание переменной - первым делом ищется в свойствах этого объекта.


Что-то у вас пошло не так..
А для доступа к свойствам прототипов используйте:

// Чтение. Возвращает obj.__proto__ 
Object.getPrototypeOf(obj);  

// Запись. Устанавливает obj.__proto__ = proto 
Object.setPrototypeOf(obj, proto);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
VoidVolker
@VoidVolker Куратор тега JavaScript
Dark side eye. А у нас печеньки! А у вас?
Scope - переводится как "Область видимости", это не свойство объекта.
https://www.w3schools.com/js/js_scope.asp
https://leonid.shevtsov.me/post/javascript-variabl...
Ответ написан
Комментировать
boratsagdiev
@boratsagdiev
Это свойство добавляется dev tools'ами и судя по всему не доступно для программного вызова из js.

См. https://stackoverflow.com/questions/41146373/acces...
(Тут вопрос о рядом лежащей [[FunctionLocation]])
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы