E 'possibile vedere il chiamato/chiamante di una funzione quando use strict
è abilitato?Come si rileva la funzione chiamante in JavaScript quando è abilitato l'uso strict?
'use strict';
function jamie(){
console.info(arguments.callee.caller.name);
//this will output the below error
//uncaught TypeError: 'caller', 'callee', and 'arguments' properties may not be accessed on strict mode functions or the arguments objects for calls to them
};
function jiminyCricket(){
jamie();
}
jiminyCricket();
In generale (con * pochissime * eccezioni) se si vuole farlo, si sta facendo qualcosa di sbagliato. Cerca di spiegare il * vero problema * che vuoi risolvere con questo codice. – zerkms
Non c'è alternativa. Il modo consigliato è usare il nome della funzione direttamente come 'jamie.name // jamie'. Ma i nomi delle funzioni sono spesso irrilevanti, a parte il debugging, non fanno alcuna differenza nel tuo codice e fare affidamento su questa funzionalità per qualcosa di diverso dalla ricorsione è di solito un problema XY. – elclanrs
Per essere onesti, non c'è alcun problema reale con il mio codice, ma ho una funzione alias di 'console.info' quindi' c = console.info' essenzialmente. Quindi, quando consolo qualcosa con detta funzione, mostra semplicemente nella console che proviene dallo stesso posto ogni volta. volevo produrre quale funzione lo chiamava. Solo per il fatto che io sia pigro e figo tutto in uno: D –