0

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>

该如何写呢?

xxfaxy 1.3k
11月9日提问

1 个回答

0

已采纳

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

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

f();

推广链接