2017-09-26 1 views
1

J'ai un répertoire 'custom' où je voudrais stocker toutes les modifications apportées aux prototypes d'objets intégrés. Chaque objet intégré qui a été modifié aura son propre fichier (c'est-à-dire custom/String.js pour toute modification à String.prototype).Exporter/Importer fonction personnalisée de l'objet intégré dans ES6?

En plus de ces fichiers, j'aurai un fichier appelé custom/All.js qui sera utilisé pour exporter la fonctionnalité personnalisée à utiliser.

all.js

export * from './String' 
export {Multiply} from './Array' 

main.js

import * from './custom/All' 

string.js

// something like this 
export String.prototype.doSomething = function() {} 

peut quelque chose comme cela doit être fait?

+1

Vous voulez exporter et modifier le prototype? – Li357

+0

@AndrewLi Oui, à peu près. Essentiellement je voudrais importer les changements au prototype de String plus-que la fonction elle-même (si c'est même possible) – sookie

+0

@Rajesh Non. C'est encore plus bizarre à utiliser. – Bergi

Répondre

6

Bien sûr it's still considered a bad idea to extend builtin prototypes, even in ES6, mais si vous insistez pour le faire de toute façon au lieu d'un module simple à utiliser des fonctions d'aide statiques:

Vous ne devriez pas export quoi que ce soit. Ce sont des mutations, et n'ont aucune valeur. Vous avez seulement besoin d'inclure le code du module pour ses effets secondaires.

// main.js 
import './custom'; 

// custom/index.js 
import './String'; 
import './Array'; 

// custom/String.js 
String.prototype.doSomething = function() {};