2010-11-25 6 views
1

J'ai un objet défini comme une fonction, et il a beaucoup de méthodes et de propriétés, comment pouvez-vous le modulariser pour le rendre plus gérable? Est-il possible de mettre des fonctions à l'intérieur de l'objet dans des fichiers externes?Javascript modularisation de gros objets

Edit:

Quelqu'un a mentionné dans une réponse à inclure d'autres fichiers, mais cela aurait une page unweildy HTML, IE:

<script type="text/javascript" src="script1.js"></script> 
<script type="text/javascript" src="script2.js"></script> 
<script type="text/javascript" src="script3.js"></script> 
.... 
<script type="text/javascript" src="script76.js"></script> 

est-il aussi une façon de structurer le code pour une seule référence est nécessaire le fichier javascript?

+0

Vous devriez essayer généralement d'avoir aussi peu de scripts externes que possible. –

+0

Quels sont exactement les "problèmes de gestion" que vous avez avec votre code actuel? –

+0

J'ai un objet avec beaucoup de méthodes dedans, je préférerais de loin que les fonctions soient séparées en fichiers séparés en groupes donc ils sont beaucoup plus faciles à gérer qu'un gros fichier. –

Répondre

3
var myobj = { 
    somefunc: function() { /* function code */ }, 
    prop: "some string", 
    // etc. 
}; 

et dans un autre fichier js inclus après le code ci-dessus

myobj.anotherfunc = function() { /* function code */ }; 
+0

Merci, +1, mais cela nécessiterait l'inclusion de nombreuses références de script sur la page HTML de base, n'est-ce pas? De toute façon de concevoir les données pour éviter ce problème? Idéalement, il serait bien d'inclure un seul fichier. –

+0

@Tom Non, je ne vois pas comment cela serait lié. –

+0

Comment incluez-vous un autre fichier js depuis un fichier .js? –

1

Vous pouvez consulter RequireJS. Il vous permet de définir des fonctions, des modules, des dépendances et de charger des fichiers Javascript externes à partir de Javascript (éventuellement asynchrone).

0

vous pourriez utiliser un script côté serveur pour gérer vos javascripts, avec jsmin vous pourriez même accélérer le processus (si mis en cache).

Je pense à un somthing script comme ceci: scripts.php

<?php 

$files = array('script1.js', 'script2.js'); 
$output = ''; 

foreach($files as $file){ 
    $output .= file_get_contents($file); 
} 

header("Content-type: application/x-javascript"); 
echo $output; 

?> 

your html 
<script type="text/javascript" src="/script.php"></script> 

vous pouvez aussi simplement inclure tous les fichiers js dans un dossier, il suffit de générer le tableau via la numérisation des dossiers ou quelque chose, je pense vous avez eu l'idée!

salutations Nexum