2010-11-25 8 views
1

Ich habe ein Objekt als eine Funktion definiert, und es hat eine Menge Methoden und Eigenschaften drin, was sind einige Möglichkeiten, dies zu modularisieren, um es überschaubarer zu machen? Sie können Funktionen innerhalb des Objekts in externe Dateien einfügen.Javascript Modularisierung großer Objekte

Edit:

Jemand in einer Antwort erwähnt auf andere Dateien enthalten, aber dies würde eine unweildy HTML-Seite haben, 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> 

Gibt es auch eine Möglichkeit, den Code zu strukturieren, so dass nur ein Referenz benötigt die Javascript-Datei?

+0

Sie wollen in der Regel versuchen sollte haben so wenige externe Skripte wie möglich. –

+0

Was genau "verwalten Probleme" haben Sie mit Ihrem aktuellen Code? –

+0

Ich habe ein Objekt mit vielen Methoden darin, ich würde viel lieber die Funktionen in separate Dateien in Gruppen aufgeteilt haben, so dass sie viel einfacher zu verwalten sind als eine große Datei. –

Antwort

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

und in einer anderen js-Datei enthalten nach dem obigen Code

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

Danke, +1, aber das würde die Aufnahme einer Menge von Skript-Referenzen auf der Basis-HTML-Seite erfordern, oder? Wie auch immer, um die Daten zu entwerfen, um dieses Problem zu vermeiden? Idealerweise wäre es schön, nur eine Datei hinzuzufügen. –

+0

@Tom Nein, ich sehe nicht, wie das zusammenhängen würde. –

+0

Wie schließt man eine andere js-Datei aus einer .js-Datei ein? –

1

Sie möchten RequireJS überprüfen. Sie können Funktionen, Module und Abhängigkeiten definieren und externe Javascript-Dateien von Javascript (möglicherweise asynchron) laden.

0

Sie könnten ein serverseitiges Skript verwenden, um Ihre Javascripts zu verarbeiten, mit jsmin können Sie sogar den Prozess beschleunigen (wenn zwischengespeichert).

Ich denke an ein Skript somthing wie folgt aus: 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> 

Sie könnten auch nur enthalten alle JS-Dateien in einem Ordner, erzeugen nur das Array über Ordner scannen oder etwas, ich denke, Du hast die Idee!

Grüße Nexum