Например, если мы допустим следующий код:
var f = function() { return 'hello world' };
var x = 10;
var y = 314;
var g = function() {
var buf = [], xx = x;
while (xx--)
buf.append(f() + ' ');
return buf.join('');
}
Я могу получить фактический "код" как строку g
с g.toString()
. Однако это не означает (очевидно), что f
и x
- члены замыкания g
(извините, если я не совсем правильно использую эти условия.)
Есть ли способ запросить функцию для ее закрытия? В идеале я мог бы получить объект вроде:
{ 'f' : f, 'x': x } // note that `y` is not here
Если мне нужно перейти на С++ для специальных взаимодействий с V8, это хорошо, хотя как-то сделать это в чистом JavaScript было бы лучше.
Я знаю, что это немного странный вопрос, но у меня есть законная причина для этого!