0

这是一些 JS 代码

var methodArr = ['firstFunc','secondFunc','thirdFunc'];

for(var i in methodArr)
{

    window[methodName] = function()
    {
        console.log(methodName);
    }
}

我的问题是如何在 JS 中获取函数的名称。

在 JS 中,使用this.callee.name.toString()可以获取函数名。但在这种情况下,它是一个null值。我怎样才能得到'funName'字符串?

对不起,我没有说清楚。我想在 for 循环中创建函数,所有这些函数都有几乎相同的实现,需要它的名字。但是其他人可以使用不同的名称调用这些函数。我想知道methodName调用了什么函数。

4

1 回答 1

0

这似乎是一个范围问题。

尝试这个:

var methodArr = ['firstFunc','secondFunc','thirdFunc'];
for(var i in methodArr) {
    var methodName = methodArr[i]; // <---- this line missed in your code?

    window[methodName] = (function(methodName) {
        return function() {
            console.log(methodName);
        }
    })(methodName);
}

window['secondFunc'](); // output: secondFunc
于 2013-09-04T09:53:01.213 回答