It is advisable to encapsulate the code in the namespace to avoid name conflicts. Here is what I always do in my additions:
if(!org) var org={};
if(!org.janek) org.janek={};
org.janek.Addon = function() {
var pub = {};
var self = this;
pub.init = function() {
}
...
self.thisIsAPrivateMethod = function(arg) {
}
return pub;
}();
window.addEventListener("load",
org.janek.Addon.init,
false);
First, I create my own org.janek namespace, making sure it does not exist yet. Then I add an Addon object that will contain the code for my addon.
"pub" "self". , , pub. .
, quickfilter_extension ( prefManager):
var quickfilter_extension = function() {
var pub = {};
pub.prefManager = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
pub.init = function() {
gBrowser.addProgressListener(quickfilter_urlBarListener, Components.interfaces.nsIWebProgress.NOTIFY_STATE_DOCUMENT);
quickfilter_quickfilter.request_xml();
},
pub.uninit = function() {
gBrowser.removeProgressListener(quickfilter_urlBarListener);
}
return pub;
}();
, prefManager, quickfilter_extension:
redirectToAnotherUrl:function()
{
[ ... omitted ...]
qucikFilterRedirectCount = quickfilter_extension.prefManager.getCharPref("extensions.quickfilter_redirect_count");
[ ... omitted ...]
}
javascript- Yahoo YUI .