【发布时间】:2013-05-23 19:40:58
【问题描述】:
我在一个变量中有一个函数的名称,但一切都在一个闭包中。有了这个变量,我想调用函数,像这样
(function(func) {
this[func]() ; // doesn't work
function bar() {}
function foo() {}
})('bar') ;
这样的事情可能吗,或者我应该,例如,将函数添加到变量中,比如
(function(func) {
var ns = {
bar: function() {},
foo: function() {}
};
ns[func]() ; // OK
})('bar') ;
【问题讨论】:
-
你的代码没有意义。你到底想达到什么目的?
-
@Kirill 非常有意义。在第一个示例中,如何使用“变量函数”名称调用
foo或bar?例如。window[foo]()在全局范围内工作正常,this[foo]()不行。 -
this在闭包内不过是window对象。你最好使用第二种方法。
标签: javascript closures