Ich plane, diverse Funktionen in eine Bibliothek zu integrieren, für die ich mir folgende Struktur ausgedacht habe:
var lib = {
func1 : {
version : 'a.b.c', // func1 version
init : function () {
...
}
},
func2 : {
version : 'x.y.z', // func2 version
init : function () {
...
}
},
version : 'l.m.n' // lib version
};
> Um von außen einen Zugriff auf die einzelnen Unterobjekte zu ermöglichen, ohne diese jedoch zu kennen, würde ich gern innerhalb des lib Objektes ein Unterobjekt definieren, welches die vorhandenen funcx Objekte enthält (bzw. ein Subset davon, welches ich nach außen sichtbar machen möchte).
Deine Variante hat den Nachteil, dass du keinen gemeinsamen Scope hast, also auch keine lokale Package Variabel (um das ein bisschen Perl'isch auszudrücken) hast. Daher bevorzuge ich mittlerweile diese Variante:
~~~javascript
var lib = new function() {
this.func1 = function() { /* ...*/ };
this.func2 = function() { /* ...*/ };
var module = [];
for(var f in this) if(typeof this[f] == 'function') module.push(f);
this.module = function() { return module; };
}
alert( lib.module())
Struppi.