Вы можете попробовать вот так, может быть, проще, чем передавать аргументы?
var foo = function() {
this.a = function () {
console.log('A function');
}
this.b = function() {
console.log('B function');
}
return this;
}
Затем вызвать нужную функцию, например,
foo().a();
РЕДАКТИРОВАТЬ: Я неправильно понял ваш код. Если я правильно теперь понимаю, вы хотите передать только строку, а затем немедленно вызвать функцию с таким именем?Ну, вы можете сделать это, используя eval()
, но многие люди советуют избегать его использования, где бы он ни находился:
function foo(whatFunction) {
function a() {
console.log('a function');
}
function b() {
console.log('b function')
}
eval(whatFunction)();
}
Так что тогда назовите его foo('b')
, например