J'essaie de définir une fonction qui peut accéder aux variables qui sont dans la portée de la fonction qui l'appelle. (J'essaye de construire un formateur de chaîne qui est plus joli que "a" + b, et plus concis que String.format ("a {0}", b). Donc je peux obtenir SF ("a { b} "), et je ne sais pas s'il est possible)Accéder aux variables javascript à partir de la portée de l'appel
si
function magic(str) { return parentScope[str]; // or return eval(str); // or something like that } function call() { var a = 1; alert(magic("a")); } call();
alerterait "1".
actuellement je peux le faire en ayant le code de retour de la fonction à être évalué, mais il semble qu'il doit y avoir une meilleure façon.
Il y avait un « arguments.caller » et je pense qu'une « arguments.callee.caller » pour obtenir au parent, mais la mise en œuvre est browser- dépendante et de plus en plus hors de la faveur. Je pense que même les arguments.callee pourraient finir par être obsolètes. Le mieux est de rester loin de tout ça. – Nosredna