是否有任何可以使用的属性或网络工具,以便我可以在运行时评估两个 javascript 对象的范围?
最佳答案
不在浏览器中。 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); });
关于javascript - javascript中有没有办法获取对象的范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3681435/