2013-09-30 2 views
1

Скажем, у меня есть массив [func1, func2, func3].Имена функций печати для массива функций

Я хотел бы распечатать в виде строки: «func1, func2, func3». Тем не менее, он печатает все содержимое функции.

Должен ли я сделать некоторое регулярное выражение, чтобы захватить имя с выхода или есть более простой способ?

Cheers.

ответ

2

Используйте Function name property:

function doSomething() { } 

alert(doSomething.name); // alerts "doSomething" 

Имейте в виду, что в соответствии с документацией, это не работает в Internet Explorer. Вы можете посмотреть other options, если это важно для вас.

0

Вы хотите получить имена функций в списке, не так ли? Если это так, что-то вроде этого должно работать для вас. Пожалуйста, дайте мне знать, если это не то, что вы хотели сделать. JsFiddle Working code here

//declare the dummy functions 
function funcOne(){ 
    return null; 
} 
function funcTwo(){ 
    return null; 
} 
function funcThree(){ 
    return null; 
} 
//add the functions to the array 
var functionArray=[funcOne,funcTwo,funcThree]; 
//declare an output array so we can then join the names easily 
var output=new Array(); 
//iterate the array using the for .. in loop and then just getting the function.name property 
for(var funcName in functionArray){ 
    if(functionArray.hasOwnProperty(funcName)) 
     output.push(functionArray[funcName].name); 
} 
//join the output and show it 
alert(output.join(",")); 
Смежные вопросы