J'essaie de créer le même comportement dans Node.js que la méthode magique PHP __callStatic
J'essaie de le faire en utilisant Proxy
mais je ne sais pas si c'est la meilleure option.
class Test { constructeur() { ce.num = 0 } ensemble(num) { ceci.num = ceci.num + num rends ceci } obtenir() { renvoyer ce.num } } const TestFacade = nouveau proxy ({}, { obtenir : (_, clé) => const test = nouveau Test() retourner le test[clé] } }) //La chaîne de méthodes d'exécution se termine par get console.log(TestFacade.set(10).set(20).get()) //Résultat attendu : 30 //Résultat renvoyé : 0 // Démarre une nouvelle chaîne de méthodes d'exécution et instancie à nouveau la classe Test dans le premier ensemble console.log(TestFacade.set(20).set(20).get()) //Résultat attendu : 40 // Renvoie le résultat : 0
Le problème est que chaque fois que j'essaie d'accéder aux propriétés de TestFacade
, le piège get
Le comportement dont j'ai besoin est que lorsque la méthode set
est appelée, elle renvoie this
exemple pour une utilisation ultérieure !
const testInstance = TestFacade.set(10) // La méthode set renvoie `this` de `Test` au lieu de Proxy
Si quelque chose n’est pas clair, faites-le-moi savoir.
Je ne sais pas si c’est la meilleure option. Mais je me lie à la méthode via l'instance de classe
get
陷阱中返回一个新的代理来解决了这个问题,该代理使用apply
陷阱将test
: