En C et C#, les espaces de noms sont utilisés pour minimiser les conflits de noms. Par exemple, dans le .NET Framework, les espaces de noms permettent de distinguer la classe Microsoft.Build.Task.Message de System.Messaging.Message. JavaScript ne dispose d'aucune fonctionnalité spécifique au langage pour prendre en charge les espaces de noms, mais il est facile d'émuler des espaces de noms à l'aide d'objets. Si vous créez une bibliothèque JavaScript, vous pouvez les envelopper dans un espace de noms sans définir de fonctions ni de classes globales, comme ceci :
var MSDNMagNS = {}; MSDNMagNS.Pet = function(name) { // code here }; MSDNMagNS.Pet.prototype.toString = function() { // code }; var pet = new MSDNMagNS.Pet(“Yammer”);
Un niveau d'espace de noms peut ne pas être unique, des espaces de noms imbriqués peuvent donc être créés :
var MSDNMagNS = {}; // nested namespace “Examples” MSDNMagNS.Examples = {}; MSDNMagNS.Examples.Pet = function(name) { // code }; MSDNMagNS.Examples.Pet.prototype.toString = function() { // code }; var pet = new MSDNMagNS.Examples.Pet(“Yammer”);
Comme vous pouvez l'imaginer, taper ces longs espaces de noms imbriqués peut être fatiguant. Heureusement, les utilisateurs de la bibliothèque peuvent facilement spécifier des alias plus courts pour les espaces de noms :
// MSDNMagNS.Examples and Pet definition... // think “using Eg = MSDNMagNS.Examples;” var Eg = MSDNMagNS.Examples; var pet = new Eg.Pet(“Yammer”); alert(pet);
Si vous regardez le code source de la bibliothèque Microsoft AJAX, vous constaterez que l'auteur de la bibliothèque a utilisé une technologie similaire pour implémenter les espaces de noms. Je ne l'expliquerai pas en détail ici. Les amis qui en ont besoin peuvent se rendre chez Du Niang. pour le trouver.
Ce qui précède représente l'intégralité du contenu de cet article, j'espère qu'il sera utile à tous ceux qui apprennent le javascript