Pregunta

var Helloworld = {
  onLoad: function() {
    // initialization code
    this.initialized = true;
  },

  onMenuItemCommand: function() {
    window.open("chrome://helloworld/content/hello.xul", "", "chrome");
  }
};

window.addEventListener("load", function(e) { Helloworld.onLoad(e); }, false); 

http://kb.mozillazine.org/Getting_started_with_extension_development

No entiendo la parte function(e) { Helloworld.onLoad(e);. Creo que pasa un parámetro de evento e a la función onLoad, pero la función onLoad no tiene onLoad: function(e) {} recibir e, así que lo que está pasando?

¿Fue útil?

Solución

Sólo define un función anónima . Dicha función será llamada cuando se activa el evento load

Tenga en cuenta que en JavaScript, la declaración de la función no es estricta. Se puede llamar a una función con parámetros incluso si la declaración no se muestra explícitamente tales. En otras palabras, no hay tal cosa como una "función de firma" (como en Java, C ++, etc.). El intérprete de JavaScript sólo se llamará al método "hasmethod" en el objeto de determinar si el "método X" se implementa.

var Helloworld = {

  // parameters can be sent to "onload" but they will be ignored.
  onLoad: function() {
    // initialization code
    this.initialized = true;
  },

  onMenuItemCommand: function() {
    window.open("chrome://helloworld/content/hello.xul", "", "chrome");
  }
};

// attach an event handler to the event "load".  Pass the event variable "e"
// even though the receiving function will ignore it. 
window.addEventListener("load", function(e) { Helloworld.onLoad(e); }, false);

Otros consejos

Puede cambiar el onLoad si usted quiere tener un parámetro, es sólo un ejemplo onLoad. Es JavaScript, después de todo, no en C / C ++, etc.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top