diff options
author | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:41:45 -0500 |
---|---|---|
committer | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:41:45 -0500 |
commit | 1109132f09d75da9a28b649c7677bb6ce07c40c0 (patch) | |
tree | 0dd8b084480983cf9f9680e8aedb92782a921b13 /files/es/components.utils.import/index.html | |
parent | 4b1a9203c547c019fc5398082ae19a3f3d4c3efe (diff) | |
download | translated-content-1109132f09d75da9a28b649c7677bb6ce07c40c0.tar.gz translated-content-1109132f09d75da9a28b649c7677bb6ce07c40c0.tar.bz2 translated-content-1109132f09d75da9a28b649c7677bb6ce07c40c0.zip |
initial commit
Diffstat (limited to 'files/es/components.utils.import/index.html')
-rw-r--r-- | files/es/components.utils.import/index.html | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/files/es/components.utils.import/index.html b/files/es/components.utils.import/index.html new file mode 100644 index 0000000000..66f32f06e1 --- /dev/null +++ b/files/es/components.utils.import/index.html @@ -0,0 +1,62 @@ +--- +title: Components.utils.import +slug: Components.utils.import +tags: + - NeedsContent + - XPConnect + - páginas_a_traducir +translation_of: Mozilla/Tech/XPCOM/Language_Bindings/Components.utils.import +--- +<p></p> + +<p>Este método fue introducido en <a href="es/Firefox_3_para_desarrolladores">Firefox 3</a> y es usado para compartir código entre diferentes alcances(scopes) de forma sencilla. Por ejemplo, puedes importar <a href="es/XPCOMUtils.jsm">XPCOMUtils.jsm</a> para evitar copiar y pegar grandes porciones comunes de código de registración de componentes XPCOM en tus archivos de compomentes.</p> + +<pre class="eval">Components.utils.import("<a class="external" rel="freelink">resource://gre/modules/XPCOMUtils.jsm</a>"); +</pre> + +<p>Para documentación mira <a href="es/Usando_m%c3%b3dulos_de_c%c3%b3digo_JavaScript">Usando módulos de código JavaScript</a>.</p> + +<h3 id="Diferencias_con_mozIJSSubScriptLoader" name="Diferencias_con_mozIJSSubScriptLoader">Diferencias con mozIJSSubScriptLoader</h3> + +<p>Las diferencias con <code><a href="/es/docs/Mozilla/Tech/XPCOM/Reference/Interface/mozIJSSubScriptLoader" title="">mozIJSSubScriptLoader</a></code> son:</p> + +<ul> + <li>El comportamiento cuando se importa/carga el mismo código desde diferentes lugares: + <ul> + <li>el cargador de subscrip evalua el código especificado cada vez que es invocado, con el objeto global del llamador.</li> + <li><code>Components.utils.import</code> evalua el código de cada módulo sólo una vez, en su propio alcance(scope).</li> + </ul> + + <p>Por ejemplo:</p> + + <pre class="eval">var scope1 = {}, scope2 = {}; +Components.utils.import("<a class="external" rel="freelink">resource://gre/modules/JSON.jsm</a>", scope1); +Components.utils.import("<a class="external" rel="freelink">resource://gre/modules/JSON.jsm</a>", scope2); +assert(scope2.XPCOMUtils === scope1.XPCOMUtils); +</pre> + + <p>...retorna <code>true</code>, mientras que:</p> + + <pre class="eval">var someURL = "<a class="external" rel="freelink">resource://gre/modules/JSON.jsm</a>"; +var obj1 = {}, obj2 = {}; +var loader = Components.classes["@mozilla.org/moz/jssubscript-loader;1"] + .getService(Components.interfaces.mozIJSSubScriptLoader); +loader.loadSubScript(someURL, obj1); +loader.loadSubScript(someURL, obj2); +assert(obj2 === obj1); +</pre> + + <p>...retorna <code>false</code>.</p> + + <p>Esto significa que <code>Components.utils.import</code> es más apropiado para compartir código (y datos?) eficientemente entre scripts JS corriendo en diferentes alcances (scopes).</p> + </li> + <li>El cargador de subscript acepta una URL para el código a cargar, mientras que <code>import</code> sólo acepta <code><a href="es/Usando_m%c3%b3dulos_de_c%c3%b3digo_JavaScript#Protocolo_resource:">resource:</a></code> y <code>file:</code> URIs.</li> +</ul> + +<h3 id="Recursos_Adicionales" name="Recursos_Adicionales">Recursos Adicionales</h3> + +<ul> + <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=238324" title="FIXED: Implement JavaScript code-sharing module system">error 238324</a></li> + <li>La documentación en <a href="https://dxr.mozilla.org/mozilla-central/source/js/src/xpconnect/idl/xpccomponents.idl" rel="custom">xpccomponents.idl</a></li> + <li>Los casos de prueba en <code><a href="https://dxr.mozilla.org/mozilla-central/source/js/src/xpconnect/tests/unit/" rel="custom">js/src/xpconnect/tests/unit/</a></code></li> +</ul> |