这是一些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
函数。
答案 0 :(得分: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