2011-01-09 9 views
2

Ich bin erstaunt, dass sogar nach all dieser Zeit (jQuery war um since 2006) müssen wir auf adding a plugin oder custom function zurückgreifen, um Namespaces in jQuery zu implementieren.

// USAGE: 
// var myProject = $.namespace('com.foo.myProject'); 
namespace : function(){ 
var o, d; 
$.each(arguments, function(i,v) { 
    d = v.split("."); 
    o = window[d[0]] = window[d[0]] || {}; 
    $.each(d.slice(1), function(i2, v2){ 
    o = o[v2] = o[v2] || {}; 
    }); 
}); 
return o; 
}, 

Ich meine, das ist ein kleines Stück Code für ein Konzept, das in den meisten Javascript-Projekten und Frameworks verwendet wird (oben auf den ext js implementation basiert):

Warum ist nicht dieser Teil von jQuery Core bauen? Gibt es einen Grund neben "wir haben es noch nicht geschafft"?

+0

Ernsthaft? Sie benötigen so viel Code, um Namespacing zu implementieren? Die meisten Leute verwenden genau Null Bytes für die Implementierung. – slebetman

+0

Sie sollten das jquery-Plugin sehen, wenn Sie denken, dass das zu lang ist –

+0

@slebtman haben Sie eine bessere Möglichkeit, die gesamte Namespace-Hierarchie auf einmal zu definieren? –

Antwort

10

jQuery ist ein Framework zur Vereinfachung der DOM-Manipulation. Es ist wirklich kein "Anwendungsrahmen". Lesen Sie die jQuery-Fehlerliste, um ein Gefühl für die Kernphilosophie zu bekommen.

+0

Glauben Sie, dass das Team nachgeben wird, um danach zu fragen? –

+0

Nun, ich denke, dass sie ziemlich klar darin waren, die Dinge getrennt zu halten. Das UI-Zeug zum Beispiel unterscheidet sich deutlich von der Kernbibliothek. Ich bin jedoch nicht auf einem jQuery-Committer. – Pointy

+0

+1 und ich bin froh, jquery versucht nicht, mein alles zu sein. Ich mag es als mein Schweizer Taschenmesser. – goat

Verwandte Themen