JavaScript函数内部如何根据字符串调用一个内部函数呢?

1.如果是调用全局函数可以用eval,这个不推荐

2.如果是调用全局函数还可以这样

var f = "test";
window[f]();

3.于是我想到应该可以这样,可是报错

<script>
function f()
{
    function a()
    {
        console.log("a");
    }
    var m = "a";
    var that = this;
    that[m]();
}

f();
</script>

该如何写呢?

阅读 1.4k
1 个回答

这个问题的关键在于,内部函数a是挂载到哪里的?
你可以将你的代码改为

function f()
{
    this.a = function ()
    {
        console.log("a");
    }
    var m = "a";
    var that = this;
    that[m]();
}

f();
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题