Python的locals()
函数在函数范围内调用时,返回一个字典,其键值对是函数局部变量的名称和值。例如:
def menu():
spam = 3
ham = 9
eggs = 5
return locals()
print menu() # {'eggs': 5, 'ham': 9, 'spam': 3}
JavaScript有这样的东西吗?
答案 0 :(得分:4)
scope
本身无法在JavaScript中访问,因此没有相应的内容。但是,如果您绝对需要这种功能,则可以始终声明一个充当本地范围的私有变量。
function a() {
var locals = {
b: 1,
c: 2
};
return locals;
}
此外,如果您想使用locals()
之类的原因来检查变量,您还可以使用其他解决方案,例如使用浏览器的开发工具设置断点并添加监视。将debugger;
直接放在代码中也适用于某些浏览器。
答案 1 :(得分:2)
不,在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}