Généraux

Les navigateurs et autres logiciels utilisant Javascript utilise plusieurs classes prédéfinies et essentiels à Javacript. Voici une liste des principales classes qu'on retrouve dans la majorité des navigateurs:

  • Array (tableau) - aussi une fonction
  • Boolean (valeur booléenne) - aussi une fonction
  • Date - aussi une fonction
  • Error (erreur) - aussi une fonction
  • Function (fonction) - aussi une fonction
  • Math
  • Number (nombre) - aussi une fonction
  • Object (objet) - aussi une fonction
  • RegExp (expression rationnelle) - aussi une fonction
  • String (chaîne) - aussi une fonction

Netscape et Mozilla

En plus de tous les objets d'interfaces du DOM 2 Core, DOM 2 HTML, DOM 2 Event, DOM 2 CSS, DOM Range, les objets suivants sont aussi définis:

  • java
  • JavaArray
  • JavaClass
  • JavaObject
  • JavaPackage
  • netscape
  • Packages
  • sun

XUL

Les technologies XUL et XPCOM permettent d'intégrer des objets C++ en Javascript à l'aide d'interface .idl prédéfinies. On peut obtenir une nouvelle instance d'objet grâce à la syntaxe:

// instance de classe:
var newObj = Components.classes["@mozilla.org/directory/className;1"].getInstance();
// instance de classe:
var newObj = Components.classes["@mozilla.org/directory/className;2"].getInstance(Components.interfaces.nsIInterfaceName);
// service créer une seule fois
var newService = Components.classes["@mozilla.org/directory/serviceName;1"].getService(Components.interfaces.nsIInterfaceName);

Exemple:

var prompts = Components.classes["@mozilla.org/embedcomp/prompt-service;1"]                       
                 .getService(Components.interfaces.nsIPromptService);

On peut aussi ajouter des fonctions et paramètres d'interfaces. Il s'agit en quelques sorte d'héritage d'interfaces dynamique après la création de la classe. On utilise le mot clé "instanceof" à l'aide de la syntaxe suivante:

newObj instanceof Components.interfaces.nsIInterfaceName;
newObj instanceof Components.interfaces.nsIInterfaceName2;
newObj instanceof Components.interfaces.nsIInterfaceName3;

Les objets XPCOM permettent aussi d'utiliser la fonction QueryInterface.

newObj.QueryInterface(Components.interfaces.nsIInterfaceName); 

Le site XULPlanet contient une liste de ces interfaces dans la section XPCOM Reference Interfaces.