按名称调用函数,该函数不属于全局范围
假设我有这样的事情:
var MyApp = MyApp || {}; MyApp.feature = (function($){ var somelocalVariable, otherone init = function() { }, somePrivateFunction = function() { var functionName = 'otherFunction'; //how can I call otherFunction by name (using variable above) }, otherFunction = function() { }; return { init: init } })(jQuery);
在这个例子中,如果我做window['otherFunction']
就不会发生任何事情,因为它不是一个全局函数。 如何将其作为更私密范围的一部分执行?
将“window”替换为“this”
this[functionName]();