penso che si può fare:
var name = arguments.callee.toString();
Per ulteriori informazioni su questo, dare un'occhiata a this article.
function callTaker(a,b,c,d,e){
// arguments properties
console.log(arguments);
console.log(arguments.length);
console.log(arguments.callee);
console.log(arguments[1]);
// Function properties
console.log(callTaker.length);
console.log(callTaker.caller);
console.log(arguments.callee.caller);
console.log(arguments.callee.caller.caller);
console.log(callTaker.name);
console.log(callTaker.constructor);
}
function callMaker(){
callTaker("foo","bar",this,document);
}
function init(){
callMaker();
}
Sono curioso, in quali circostanze sarebbe il nome della funzione si è in realtà non quello scritto nel codice? – bryantsai
@bryantsai: 'window [window.prompt ('Nome funzione:', '')] = function() {alert (arguments.callee.name); }; ' – Boldewyn