JavaScript namespaces sont normalement imités en utilisant des objets et des fermetures, et souvent initialisés avec une fonction d'auto-invocation:
var myNamespace = (function() {
var _name = 'Bob';
return {
somePublicMethod: function() {
return 'Hello, ' + _name;
}
};
})();
alert(myNamespace.somePublicMethod());
Malheureusement, si vous redéfinissez la variable d'espace de noms, il n'y a pas d'avertissement pour cela. Qu'est-ce que vous pourriez vraiment faire est de vérifier si la variable d'espace de noms a déjà été défini, et jeter une exception ou soulever une erreur si elle était:
if (typeof myNamespace !== 'undefined') {
var myNamespace = (function() {
// ...
})();
}
else {
throw new Error("Whoops! myNamespace already exists.");
}
Je n'ai pas le temps d'expliquer moi-même, mais un coup d'oeil à la vidéo de Paul Irish [10 choses à savoir de la source jQuery] (http://www.youtube.com/watch?v=i_qE1iAmjFg # t = 12m35) où il parle de 'noConflict'. Voir aussi son [blog] (http://paulirish.com/2010/10-things-i-learned-from-the-jquery-source/) pour d'autres liens et commentaires. –
Merci beaucoup c'est ce que je cherchais. – user310291