Можно ли извлечь что 7
из x
?
Nope. f
должен явно предоставить вам способ получить this
(например, function f() { return this; }
). Так как это не так, вы не можете.
В спецификациях вы спрашиваете, можно ли получить значение внутреннего слота [[BoundThis]] из функции. [[BoundThis]] появляется только три раза в спецификации: где описаны bound function exotic objects, где описаны их [[Call]] internal operation и где обозначен process of creating them. Таким образом, не в операции, позволяющей получить значение.
g
закрывает более x
. Можно ли получить массив закрытых переменных от g
?
Nope. :-) Это хорошо с точки зрения наличия частной информации и публичного API.
Предоставление для доступа к списку привязок в объекте lexical environment, прикрепленном к g
и ко всем его внешним лексическим средам. В спецификации нет.
Там нет спецификации причины один или оба не могут быть добавлены, но я думаю, что (и это только мое личное предположение), что TC39 (комитет, который решает эти вещи) будет трудно продать на первая и почти невозможная продажа на втором (что имеет массовые и негативные последствия реализации).
Нет, вы не можете (если только поведение функции не раскрывает его, конечно), и вы не можете этого сделать. – Pointy