MDN may have intermittent access issues April 18 13:00 - April 19 01:00 UTC. See whistlepig.mozilla.org for all notifications.

mozilla
Los resultados de tu búsqueda

    Components.utils.import

    Imagen:traduccion-pendiente.png Esta página está traduciéndose a partir del artículo Components.utils.import, razón por la cual puede haber algunos errores sintácticos o partes sin traducir. Puedes colaborar continuando con la traducción


    Este método fue introducido en Firefox 3 y es usado para compartir código entre diferentes alcances(scopes) de forma sencilla. Por ejemplo, puedes importar XPCOMUtils.jsm para evitar copiar y pegar grandes porciones comunes de código de registración de componentes XPCOM en tus archivos de compomentes.

    Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
    

    Para documentación mira Usando módulos de código JavaScript.

    Diferencias con mozIJSSubScriptLoader

    Las diferencias con mozIJSSubScriptLoader son:

    • El comportamiento cuando se importa/carga el mismo código desde diferentes lugares:
      • el cargador de subscrip evalua el código especificado cada vez que es invocado, con el objeto global del llamador.
      • Components.utils.import evalua el código de cada módulo sólo una vez, en su propio alcance(scope).

      Por ejemplo:

      var scope1 = {}, scope2 = {};
      Components.utils.import("resource://gre/modules/JSON.jsm", scope1);
      Components.utils.import("resource://gre/modules/JSON.jsm", scope2);
      assert(scope2.XPCOMUtils === scope1.XPCOMUtils);
      

      ...retorna true, mientras que:

      var someURL = "resource://gre/modules/JSON.jsm"; 
      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);
      

      ...retorna false.

      Esto significa que Components.utils.import es más apropiado para compartir código (y datos?) eficientemente entre scripts JS corriendo en diferentes alcances (scopes).

    • El cargador de subscript acepta una URL para el código a cargar, mientras que import sólo acepta resource: y file: URIs.

    Recursos Adicionales


    Etiquetas y colaboradores del documento

    Contributors to this page: Mariano, Mgjbot
    Última actualización por: Mgjbot,