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

在Python中,您可以使用内置函数locals()和来获得当前范围内所有局部变量和全局变量的字典globals()。是否有一些等效的方式在Javascript中执行此操作?例如,我想执行以下操作:


var foo = function(){ alert('foo'); };

var bar = function(){ alert('bar'); };


var s = 'foo';

locals()[s](); // alerts 'foo'

这是完全可能的,还是我应该只使用本地对象进行查找?


慕婉清6462132
浏览 145回答 4
4回答

POPMUISE

locals()-否。globals()-是的。window是对全局范围的引用,例如globals()在python中。globals()["foo"]是相同的:window["foo"]

守候你守候我

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

慕少森

AFAIK,不。如果只想检查给定变量的存在,可以通过测试它来完成,如下所示:if (foo) foo();
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python