Soy relativamente nuevo en JavaScript, lo que significa que solo usé jquery, meteor.js y algo de WebGL (pero no en un proyecto más grande) Como estoy muy interesado en los gráficos por computadora, quiero escribir una biblioteca WebGL simple (como three.js oder pixie.js pero por supuesto más simple)
El problema al que me enfrento es, por ejemplo, cuando tengo un espacio de nombres MyLibrary.renderer=... solo quiero exponer MyLibrary . Lo que busco es que un cliente solo pueda escribir var renderer =new MyLibrary.renderer()
Sin embargo, dentro del renderer de archivos, necesitaré un par de otras clases. El problema hasta ahora es que los importo a través de <script> pero, como mencioné, no quiero exponer estas clases, sino solo el espacio de nombres final MyLibrary . Así que estaba buscando una forma de importar clases.
Actualmente busqué browserify pero creo que no entendí correctamente. ¿Alguien puede proporcionar también un ejemplo de cómo usar browserify con espacio de nombres y clases? Y si es posible, explique cómo una biblioteca como three.js administra/estructura su código.
Escriba una función de cierre autoejecutable. Esto evita que su código se mezcle con el alcance de otra biblioteca y, en general, es una buena práctica. Por supuesto, no evitará que otros lean su código.
(function () { var _MyLibrary = Object.create(null); // do stuff window.MyLibrary = _MyLibrary; })(); También puede escribir y exponer una función de constructor en lugar de un objeto, sin embargo, eso es de la vieja escuela. Debería preferir generar propiedades en un objeto mediante el método Object.defineProperties() .
En lugar de cargar otros códigos en las etiquetas <script> considere obtenerlos a través de AJAX desde su biblioteca.