Je souhaite ajouter ou redéfinir certaines méthodes standard d'objet, de fonction et de tableau (par exemple, comme suggéré dans this answer) dans l'application node.js. Comment dois-je faire tous les "patches" dans un seul module afin qu'il affecte tous mes autres modules? Sera-t-il suffisant si je le fais dans un module qui est juste require
'd ou cela ne fonctionnera pas parce que les deux modules ont des espaces de noms globaux différents donc ils ont un objet différent? ... Ou devrais-je lancer une initialisation fonction après require
qui fait tous ces "patches" fonctionnant dans ce module aussi?Où changer les prototypes d'objets dans node.js?
3
A
Répondre
4
Chaque fichier chargé partage les mêmes objets primordiaux comme Object, Array, etc., sauf s'il est exécuté dans un contexte vm différent, ce qui nécessite que le fichier une fois dans votre initialisation fasse les changements partout.
8
//require the util.js file
require('./util.js');
var a = [];
a.doSomething();
dans votre fichier « util.js »:
//in your util.js file you don't have to write a module, just write your code...
Array.prototype.doSomething = function(){console.log("doSomething")};
Questions connexes
- 1. Module exportant avec des prototypes et exportant l'héritage dans node.js
- 2. Variables privées dans les prototypes hérités
- 3. Prototypes de formulaires Symfony 2 dans des prototypes - champ double $$ $$
- 4. que sont les cellules prototypes dans Xcode?
- 5. Comment ouvrir les prototypes JustInMind?
- 6. Changer de dossier en cours dans Node.js
- 7. Prototypes Javascript, comment accéder aux fonctions prototypes
- 8. Où node.js met-il ses fichiers?
- 9. prototypes pré-instancier dans spring.net
- 10. Comment exporter un objet avec des méthodes supplémentaires de prototypes dans Node.js
- 11. Quel est le problème si nous étendons des prototypes dans Node.js de n'importe quel objet?
- 12. node.js/Synchroniser les rappels dans node.js
- 13. méthodes prototypes js organisation
- 14. prototypes, objets, constructeurs, "cela", les fonctions
- 15. Node.JS où est le ChangeLog décrit les v0.4.4 et 0.4.5
- 16. Corriger l'architecture pour les objets prototypes
- 17. Comportement dequeueReusableCellWithIdentifier modifié pour les cellules prototypes?
- 18. Convertir les prototypes Ajax répondeurs à jQuery
- 19. Prototypes et création d'objets
- 20. Prototypes imbriqués dans la configuration de Symfony2
- 21. Prototypes, portée et promesses
- 22. Prototypes et héritage
- 23. Sélection de prototypes d'éléments
- 24. Affectation de prototypes JavaScript
- 25. Implémentation de prototypes pour les interfaces dans TypeScript
- 26. Outils qui répertorient les prototypes dans la bibliothèque .so
- 27. Les observateurs de prototypes ne tirent pas dans IE8
- 28. Prototypes de fonction C++
- 29. node.js où est mon fichier de configuration?
- 30. Modifier les prototypes de tous les éléments DOM possibles
Voulez-vous dire qu'il est encore assez pour exiger ce module avec des « patches » une fois, seulement dans mon module principal, et je ne besoin de l'exiger dans chaque module que je veux avoir Object & co "patché"? – esp
Oui, il suffit de l'exiger une seule fois. Tous les modules du nœud partagent la même portée globale. Ils ont une portée * module * différente, mais la même portée globale. Donc, ils ont les mêmes 'Object',' Function', 'Array', etc. –
Cela fonctionne pour Function.prototype et Array.prototype, mais quand j'essaye de le faire avec Object.prototype, il lance TypeError: TypeError: La description de la propriété doit être un objet: undefined at Function.defineProperty (native) à Object. (/opt/nginx/html/dev.stockscompare/node_modules/express/lib/express.js:53:10) –
esp