Salut !

J'aimerais poser une question d'ordre technique assez avancée au sujet des contextes privés. Admettons, par exemple, que j'ai l'entité suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
var entity = (function() {
    var gizmo = new Gizmo();
 
    function doSomethingWithAGizmo(gizmo) {/* ... */}
 
    return {
        actSomehow: function() {
            doSomethingWithGizmo(gizmo);
        }
    }
})();
Ici, gizmo et doSomethingWithAGizmo sont dans un cadre privé et ne sont accessibles que dans ce cadre. Finalement, entity étant née dans ce cadre, lorsqu'on appelle sa méthode actSomehow l'exécution de doSomethingWithAGizmo se déroule parfaitement. Cette dernière n'est cependant pas accessible directement du fait de son origine privée.

La question est la suivante : n'est-il vraiment pas possible d'accéder à un objet de ce contexte en dehors de celui-ci, en rusant d'une manière ou d'une avec un objet qui en provient ou autrement ? C'est assez poussé comme concept mais peut-être que des gens se sont déjà cassé les dents dessus aussi...

À ceux-là, des avis ? Astuces ?