Duplication possible:
Emplacement de noms de Javascript
Je suis très nouveau pour JavaScript et je me demandais si quelqu'un pourrait me donner une bonne description de ce que signifie JavaScript Namespacing?
En outre, toutes les ressources, par exemple des articles, etc., sont très appréciées sur le sujet.
JavaScript est conçu de telle sorte qu'il est très facile de créer des variables globales qui peuvent interagir de manière négative. La pratique de l'espace de noms est généralement de créer un objet littéral encapsulant vos propres fonctions et variables, afin de ne pas entrer en collision avec celles créées par d'autres bibliothèques:
var MyApplication = { var1: someval, var2: someval, myFunc: function() { // do stuff } };
Ensuite, au lieu d'appeler myFunc()
échelle mondiale, il sera toujours appelé:
MyApplication.myFunc();
De même, var1
toujours été consulté comme var1
:
console.log(MyApplication.var1);
Dans cet exemple, tout le code de notre application a été MyApplication
dans MyApplication
. Il est donc beaucoup moins probable que nos variables entrent en collision avec celles créées par d'autres bibliothèques ou créées par les DOM.
Pour une course rapide (y compris les techniques), lisez ceci:
Namespacing en JavaScript
J'utilise cette technique de paternité de noms, ainsi que «l'utilisation stricte» décrite par Crockford
var MyNamespace = (function () { "use strict"; function SomeOtherFunction() { } function Page_Load() { } return { //Expose Page_Load: Page_Load, SomeOtherFunction: SomeOtherFunction }; } ()); MyNamespace.Page_Load();
Lisez-le sur un simple tutoriel ici
L'option Namespacing permet d'éviter de polluer l'espace de noms global (aucune variable de fenêtre). En vérité, chaque espace de noms est juste une grande variable, qui possède de nombreuses propriétés et méthodes.
Cela se produit car, en javascript, vous pouvez avoir des fonctions entières (méthodes) comme variables