Python 的locals()
函数在函数范围内调用时,会返回一个字典,其键值对是函数局部变量的名称和值。例如:
def menu():
spam = 3
ham = 9
eggs = 5
return locals()
print menu() # {'eggs': 5, 'ham': 9, 'spam': 3}
JavaScript有这样的东西吗?
Python 的locals()
函数在函数范围内调用时,会返回一个字典,其键值对是函数局部变量的名称和值。例如:
def menu():
spam = 3
ham = 9
eggs = 5
return locals()
print menu() # {'eggs': 5, 'ham': 9, 'spam': 3}
JavaScript有这样的东西吗?
它scope
本身在 JavaScript 中是不可访问的,所以没有等价物。但是,如果您绝对需要这种功能,您总是可以声明一个充当本地范围的私有变量。
function a() {
var locals = {
b: 1,
c: 2
};
return locals;
}
此外,如果您想使用类似的东西的原因locals()
是检查变量,您还有其他解决方案,例如使用浏览器的开发工具设置断点并添加监视。直接debugger;
放入代码中也可以在某些浏览器中使用。
不,在 Javascript 函数中没有类似的东西,但是有一种方法可以完成非常相似的事情,使用this
定义对象的所有属性,而不是作为局部变量:
function menu(){
return function(){
this.spam = 3;
this.ham = 9;
this.eggs = 5;
// Do other stuff, you can reference `this` anywhere.
console.log(this); // Object {'eggs': 5, 'ham': 9, 'spam': 3}
return this; // this is your replacement for locals()
}.call({});
}
console.log(menu()); // Object {'eggs': 5, 'ham': 9, 'spam': 3}