0

我想知道是否可以通过传递字符串名称来调用函数。以下是基本架构:

Javascript:

"use strict";
function foo(){
   var f = this;
   f.fn = function(o){return fn(o)}

   function fn(o){
      o.name();
   }

   function a(){
      alert('a');
    }

    function b(){
      alert('bb');
    }

}

var f = new foo();


f.fn({name:'a'}); 
f.fn({name:'b'});

代码设置在http://jsfiddle.net/rexonms/9c7bnkc9/

4

1 回答 1

0

您可以使用以下方法实现它eval

function foo(){
    var f = this;
    f.fn = function(o){return fn(o)}

    function fn(o){
        eval(o.name + '()');
    }

    function a(){
        alert('a');
    }

    function b(){
        alert('bb');
    }

}

var f = new foo();


f.fn({name:'a'});
f.fn({name:'b'});

这里是 jsFiddle:http: //jsfiddle.net/9c7bnkc9/2/

于 2015-01-16T19:05:33.870 回答