假设:
function foo(){
var bar = "quux";
console.log(/*mystery code here*/);
}
我正在寻找插入注释时会产生bar值的代码。举例来说,这样的东西在全球范围内起作用:
var foo = "bar";
var bar = "quux";
console.log(window[foo]);
但是,当然,全局定义的变量会附加到窗口对象上。函数的局部变量不是。是否有一些类似的方式以编程方式获取本地函数变量?
答案 0 :(得分:1)
答案 1 :(得分:0)
首先,你为什么要这样做?做这样的事情还不够吗?
console.log(bar);
在JS的范围之外,局部变量不可用,但是如果你只想在你的函数内部访问它们,那么就不需要另一种方法来访问它们。
也许如果你告诉我们这背后的真正问题(不仅仅是这个例子),我们可以为你提供一个更好的选择,而不是寻找像window[foo]
这样的东西。
答案 2 :(得分:-1)
据我所知,这是不可能的,我看不出它有什么用。但是,您可以使用for ... in结构找到任何对象的字段名称,如下所示:
for(field in obj){
console.debug("Obj has a field named:"+field+" with value:"+obj[field]);
}
答案 3 :(得分:-1)
很长的死线程,但不会eval做这个工作。
(function() {
var foo = "bar";
var bar = "quux";
altert(eval(foo));
})()