可以在严格模式下使用字符串值调用函数

时间:2015-01-16 18:58:12

标签: javascript use-strict

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

使用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/

1 个答案:

答案 0 :(得分: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/