是否有可以使用的属性或Web工具,以便我可以在运行时评估两个javascript对象的范围?
答案 0 :(得分:2)
不在浏览器中。 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); });
答案 1 :(得分:2)
在Opera Dragonfly(开发人员的工具)中,您可以在对象范围内设置断点,并查看该范围内可用的变量,方法和对象。我不知道它在其他浏览器的工具(WebKit JavaScript控制台,FireBug)中是怎么回事,但我认为其机制类似。
答案 2 :(得分:1)
是的,我使用MS Visual Studio来观察范围的变化。正常我看这个关键字