将函数全局分配给名称
我需要一个 JavaScript 函数 f
,它给定另一个(匿名)函数 g
和名称 n
将分配 g
给全局范围(或至少当前范围)中的名称。我应该能够像这样使用它:
f(function(){ /* code */ }, "foo");
foo(); // this call should now work!
这可能吗?我需要一个纯 JavaScript 解决方案,没有 DOM 之类的东西。这并不打算在任何浏览器中运行。
免责声明:我可能有也可能没有想要这样做的良好/有效的理由。您不需要向我讲授保持全局范围清洁等优点。;)
I need a javascript function f
that given another (anonymous) function g
and a name n
will assign g
to that name in the global scope (or at least the current scope). I should be able to use it like this:
f(function(){ /* code */ }, "foo");
foo(); // this call should now work!
Is this possible? I need a pure JavaScript solution, no DOM-stuff or anything like that. This is not intended to run in any browser..
Disclaimer: I may or may not have a good/valid reason for wanting to do this. You do not need to lecture me on the virtue of keeping the global scope clean etc. ;)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
根据里德的说法
或更安全的是:
As per Reid
Or to be safer:
如果您需要符合 ES5 严格模式,那么您需要:
对全局对象的引用保存在闭包中。然而,很难理解为什么这样的功能可能是必要的。
If you need to be compliant wtih ES5 strict mode, then you'll need:
A reference to the global object is kept in a closure. However it's hard to see why such a function might be necessary.