Pour tout programme JavaScript, lorsque le programme démarre, l'interpréteur JavaScript initialise un objet global à utiliser par le programme. Les fonctions de l'objet global fourni par JavaScript lui-même incluent :
1. L'objet global a des valeurs d'attribut couramment utilisées. Tels que non défini, Infinity et NaN.
2. L'objet global possède des objets d'attribut couramment utilisés. Par exemple, les objets Math, JSON et Number sont tous des propriétés de l'objet global.
3. L'objet global fournit des fonctions globales d'appel. Par exemple, isNaN(), isFinite(), parseInt(), eval(), etc.
4. L'objet global fournit des constructeurs globaux, c'est-à-dire des classes globales. Par exemple, Date(), RegExp(), String(), Object(), Array(), etc.
En plus de l'objet global JS, il existe un autre objet global pour les programmes JavaScript exécutés côté navigateur : window. L'objet global window fournit de nombreuses propriétés et méthodes liées à la fenêtre et à la page actuelles. En plus de ces propriétés et méthodes globales liées au navigateur, l'objet window encapsule également l'objet global JS et expose les propriétés et les interfaces de l'objet global JS. Par conséquent, lors de la programmation de JavaScript côté navigateur, vous n'avez qu'à vous soucier de la fenêtre ; objet global. C’est tout.
Pour cela dans un programme JavaScript, si this n'appartient à aucune fonction, alors ceci fait référence à l'objet global JS ; s'il s'agit d'un programme JS exécuté sur le navigateur, alors cela fait référence à l'objet global window.
Si this this appartient à une fonction, alors this fait référence à l'objet qui appelle la fonction. Si la fonction est juste une fonction ordinaire dans ce cas, plutôt qu'une méthode d'une certaine classe, alors il y a deux possibilités pour la référence :
1. Dans le standard ECMAScript 3 et le mode non strict du standard ECMAScript 5, ceci fait référence à l'objet global.
2. Dans le mode strict de la norme ECMAScript 5, cela fait référence à undefined.
Selon cette fonctionnalité, vous pouvez utiliser le code suivant pour déterminer si vous êtes actuellement en mode strict :
Si une variable globale est créée dans un programme JavaScript, la variable globale deviendra une propriété dans l'objet global.
Expérimenter
x = "tester";
console.log(a.x);//accéder à la valeur de la variable globale nouvellement créée