52 votes

Est-il possible d'obtenir le contexte de l'appelant en javascript ?

var test = {
    demo: function(){
      //get the caller context here
    }
}
//when this gets called, the caller context should be window.
test.demo();

J'ai essayé arguments.callee et arguments.callee.caller et pas de chance...

9voto

Seth Points 18568

Par contexte, je suppose que vous voulez dire this ? Cela dépend de la façon dont la fonction est appelée, pas d'où elle est appelée.

Par exemple (à l'aide d'une console Webkit) :

 var test = {
    demo: function() {
        console.log(this);
    }
}
test.demo();    // logs the "test" object
var test2 = test.demo;
test2();        // logs "DOMWindow"
test.demo.apply("Cheese"); // logs "String"

Incidemment, arguments.caller est obsolète.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X