• [^] # Re: Et j'ai oublié

    Posté par . En réponse au journal Firefox me gave!. Évalué à 2.

    En fait ça permet de faire de l'introspection en javascript.

    Par exemple je voulais faire un arbre d'objets qui appellent une fonction avec le chemin:
    a.b.c.d() appelle f("a.b.c.d"), et ça pour n'importe quel objet. Ça pourrait aussi être utilisé pour faire des bindings à différents languages, etc. (moi c'était plutôt pour une sorte de bindings Web Services).

    De base, dans javascript (1.5 à priori, mais ça n'a pas l'air très standardisé) il y a un handler générique de méthodes qui s'appelle __noSuchMethod__: https://developer.mozilla.org/en/JavaScript/Reference/Global(...)

    Ça marche pour les appels de méthodes, mais il n'y a pas de __noSuchAttribute__, donc pour mon cas ça ne marche pas.

    Pour résoudre ce genre de problèmes, les "harmony proxies" ont été créés qui gèrent ce genre de cas de manière homogène pour toutes les actions possibles en javascript (appels de fonctions, accès aux attributs, créations d'attributs, etc.).

    Du coup j'ai pu faire des harmony proxies récursifs qui me font ce que je veux automatiquement :). C'est un peu prise de tête mais c'est possible, alors que sans c'est pas faisable.