Maison >interface Web >js tutoriel >Comment fonctionne 'var FOO = FOO || {};' Créer et gérer des espaces de noms en JavaScript ?

Comment fonctionne 'var FOO = FOO || {};' Créer et gérer des espaces de noms en JavaScript ?

DDD
DDDoriginal
2024-12-07 05:04:17460parcourir

How Does

Espaces de noms en JavaScript : Comprendre "var FOO = FOO || {}"

En JavaScript, il est courant de voir le code suivant au début des fichiers sources :

var FOO = FOO || {};

Ce code utilise l'opérateur conditionnel (||) pour attribuer un objet vide ({}) à un variable (FOO) si elle n’existe pas déjà. Cette technique est souvent utilisée pour créer des espaces de noms, qui sont des objets nommés utilisés pour organiser des fonctions et des variables.

L'opérateur conditionnel fonctionne comme suit : si la variable FOO est indéfinie ou nulle (ce qui est l'état initial), le un objet vide lui est attribué. Cependant, si FOO a déjà été défini, sa valeur existante sera utilisée.

En utilisant un espace de noms, plusieurs fichiers partageant le même espace de noms peuvent définir des fonctions et des variables sans contaminer l'objet global. Par exemple, considérons les deux fichiers suivants :

Fichier 1 :

var MY_NAMESPACE = MY_NAMESPACE || {};
MY_NAMESPACE.func1 = {
};

Fichier 2 :

var MY_NAMESPACE = MY_NAMESPACE || {};
MY_NAMESPACE.func2 = {
};

Dans ce cas, les deux fichiers partagent l'espace de noms MY_NAMESPACE. Par conséquent, quel que soit l'ordre dans lequel ils sont chargés, func1 et func2 seront définis dans l'objet MY_NAMESPACE. Le premier fichier crée l'espace de noms initial, tandis que les fichiers suivants augmentent l'objet existant, garantissant ainsi une structure d'objet cohérente entre les fichiers.

Cette technique est particulièrement utile pour le chargement de scripts asynchrones où l'ordre d'exécution du script est incertain. En garantissant que tous les scripts partageant un espace de noms utilisent le même objet, l'ordre de chargement des fichiers n'affecte pas l'intégrité des objets définis.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn