为了账号安全,请及时绑定邮箱和手机立即绑定

相当于Python的locals()的Javascript吗?

相当于Python的locals()的Javascript吗?

慕婉清6462132 2021-03-21 08:24:18
在Python中,您可以使用内置函数locals()和来获得当前范围内所有局部变量和全局变量的字典globals()。是否有一些等效的方式在Javascript中执行此操作?例如,我想执行以下操作:var foo = function(){ alert('foo'); };var bar = function(){ alert('bar'); };var s = 'foo';locals()[s](); // alerts 'foo'这是完全可能的,还是我应该只使用本地对象进行查找?
查看完整描述

4 回答

?
POPMUISE

TA贡献1765条经验 获得超5个赞

  • locals()-否。

  • globals()-是的。

window是对全局范围的引用,例如globals()在python中。

globals()["foo"]

是相同的:

window["foo"]


查看完整回答
反对 回复 2021-03-22
?
守候你守候我

TA贡献1802条经验 获得超10个赞

我似乎记得Brendan Eich在最近的播客中对此发表了评论。如果我没记错的话,就不会考虑它,因为它给优化添加了不合理的限制。他将其与arguments局部变量进行了比较,尽管它对varargs很有用,但它的存在消除了仅通过查看其定义来猜测函数将接触的内容的能力。

查看完整回答
反对 回复 2021-03-22
?
慕少森

TA贡献2019条经验 获得超9个赞

AFAIK,不。如果只想检查给定变量的存在,可以通过测试它来完成,如下所示:

if (foo) foo();


查看完整回答
反对 回复 2021-03-22
  • 4 回答
  • 0 关注
  • 137 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信