Нет в браузере.Платформа Rhino JavaScript предоставляет вам все виды доступа к областям и контекстам (через Java).
Для каких целей вам нужен доступ к этой области?
Если вы хотите выполнить фрагменткода с доступом к свойствам определенного объекта, вы всегда можете использовать eval
и with
(с учетом их недостатков в производительности).
function exec(obj, func) {
with (obj) {
eval("("+func+")()");
}
}
var actObj = {
annoying: function (txt) {
alert(txt);
}
}
// using it:
exec(actObj, function () {
annoying("HEY THERE FRIEND ! !");
});
Если вы хотите выполнить код в определенном контенте,без объекта, просто определите функцию внутри этой области, которую вы можете выполнить снаружи.
Например:
var module = (function () {
var a = 2;
var peek = function (fn) {
eval("("+fn+")()");
}
return {
peek: peek
}
})();
module.peek(function () { alert(a); });