Création d'objet dans l'espace globale Window - javascript tome viii

publicité
Création d’Objet dans l’espace global
J AVA S C R I P T (Programmation Internet) V O L . V I I I
J.B. Dadet DIASOLUKA Luyalu Nzoyifuanga
+243 - 851278216 - 899508675 - 991239212 - 902263541 - 813572818
CHAPITRE 15 : Comment créer un objet dans l’espace globale ?
« window » (donc l’environnement global) est l’objet par défaut (c’està-dire quand un autre n’est pas spécifié en préfixe devant le nom d’une
propriété ou méthode) quand on accède à des propriétés et méthodes
d’objet. De plus, un élément dans l’espace global est accessible (visible)
de partout, sauf si ombrage c’est-à-dire redéfini dans un contexte lexical
restreint / local.
La syntaxe globale pour adjoindre une nouvelle propriété à un objet préexistent est la suivante :
1. Pour définir une seule propriété:
Object . defineProperty ( target , key , desc)
2. Pour définir plusieurs propriété:s
Object . defineProperties ( target , descriptors ).
L’environnement global qui sera notre « target » s’appelle soit « window » soit « global » selon le navigateur mais plus selon le système
d’exploitation.
Pour adjoindre une propriété à l’environnement global, il convient donc
par exemple de tester si « window » est défini ou pas. S’il est défini,
alors l’environnement global s’appelle probablement / vraisemblablement « window ». Allons-y donc :
<script type="text/javascript"> "use strict";
Object.defineProperty(
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-VIII
typeof global === "object" ? global : window ,
"NEW_CONST",
{
value:
676149.91310146,
enumerable:
true,
writable:
false,
configurable: false
}
)
console.log(NEW_CONST);
// 676149.91310146
console.log(window . NEW_CONST); // 676149.91310146
console.log(this . NEW_CONST);
// 676149.91310146
//
console.log(global . NEW_CONST);
</script>
VARIABLES GLOBALES (PROPRIÉTÉS DE L’OBJET « WINDOW ») VS VARIABLES LOCALES :
Un objet ou une variable globale sont des propriétés de l’objet
global par excellence window. Quel que soit l’endroit où vous
vous trouvez, vous pouvez TOUJOURS accéder aux objets globaux
via leur conteneur « window » (ou « this » ou « self »), comme
propriétés de celui-ci.
Dans l’espace global (en dehors de toute définition de fonction), il
n’est pas nécessaire de spécifier l’espace globale avec le préfixe
« window. » (le mot window tout en minuscules suivi d’un point).
Tout objet ou fonction ou variable défini dans l’espace global appartient à l’objet global window :
<script type="text/javascript"> "use strict";
const cl=console.log,
gVar = "nFct";
Création Objet espace global -2/14- mardi, 21. mai 2019 (8:35 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-VIII
function nFct() { cl("Hello"); }
// Entités
cl(this);
// Window
cl(self);
// Window
cl(window); // Window
// Notez les guillemets
cl(this["nFct"]);
// ƒ nFct() { cl("Hello"); }
cl(self["nFct"]);
// ƒ nFct() { cl("Hello"); }
cl(window["nFct"]); // ƒ nFct() { cl("Hello"); }
cl(this[gVar]);
cl(self[gVar]);
cl(window[gVar]);
// ƒ nFct() { cl("Hello"); }
// ƒ nFct() { cl("Hello"); }
// ƒ nFct() { cl("Hello"); }
// Notez ci-dessous l'absence de guillemets.
nFct();
// Hello
eval(gVar)();
// Hello
this["nFct"]();
self["nFct"]();
window["nFct"]();
window.nFct();
this[gVar]();
self[gVar]();
window[gVar]();
window.eval(gVar)();
</script>
//
//
//
//
Hello
Hello
Hello
Hello
//
//
//
//
Hello
Hello
Hello
Hello
Dans un environnement non global (dans une fonction par
exemple) pour accéder aux objets globaux (donc ceux appartement à l’objet global « window », il faut nécessairement le spécifier avec la notation édictée ci-dessus, « window. » (donc le
terme window suivi d’un point) en préfixe comme d’habitude
quand on doit accéder aux propriétés (et méthodes) de n’importe
quel objet.
Création Objet espace global -3/14- mardi, 21. mai 2019 (8:35 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-VIII
Illustration dans un code.
Lisez les commentaires pour comprendre :
<script type = "text/javascript"> "use strict";
var dirWinV= "Variable globale (window) directe";
let dirWinL= "Let globale (window) directe";
console.log(`dirWinV = ${dirWinV}.`);
console.log(`dirWinL = ${dirWinL}.`);
// Ici, locWinV n'est pas encore définie.
/*
console.log(`${locWinV} | ${locWinL}`);
// ReferenceError: locWinV is not defined */
// vLocale et lLocale sont des variables
// purement locales: Elles ne peuvent pas
// être affichées ici (en dehors de leur scope).
/*
console.log(`vLocale = ${vLocale}.`);
// ReferenceError: vLocale is not defined */
/*
console.log(`lLocale = ${lLocale}.`);
// ReferenceError: lLocale is not defined */
console.log("//** Appel de fct() **//");
// //** Appel de fct() **//
fct();
console.log("//** Fin Appel de fct() **//");
//** Fin Appel de fct() **//
console.log(`dirWinV = ${dirWinV}.`);
// dirWinV = Variable globale (window) directe.
console.log(`dirWinL = ${dirWinL}.`);
// dirWinL = Let globale (window) directe.
console.log(`locWinV = ${locWinV}.`);
Création Objet espace global -4/14- mardi, 21. mai 2019 (8:35 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-VIII
// locWinV = Variable globale (window) dans fct.
console.log(`locWinL = ${locWinL}.`);
// locWinL = Let globale (window) dans fct.
// vLocale et lLocale sont des variables
// purement locales: Elles ne seront jamais
// accédées ici (en dehors de leur scope).
/*
console.log(`vLocale = ${vLocale}.`);
// ReferenceError: vLocale is not defined */
/*
console.log(`lLocale = ${lLocale}.`);
// ReferenceError: lLocale is not defined */
/***********************/
/***********************/
function fct(){
console.log(`dirWinV = ${dirWinV}.`);
// dirWinV = Variable globale (window) directe.
console.log(`dirWinL = ${dirWinL}.`);
// dirWinL = Let globale (window) directe.
/*
//
/*
console.log(`locWinV = ${locWinV}.`);
ReferenceError: locWinV is not defined */
console.log(`locWinL = ${locWinL}.`);
// ReferenceError: locWinL is not defined */
console.log(`vLocale = ${vLocale}.`);
// vLocale = undefined.
/*
console.log(`lLocale = ${lLocale}.`);
// Firefox :
// ReferenceError:
//
can't access lexical declaration
// `lLocale' before initialization */
//
// Yandex :
// Uncaught ReferenceError:
Création Objet espace global -5/14- mardi, 21. mai 2019 (8:35 )
J.D.B. DIASOLUKA Nz. Luyalu
//
JavaScript Tome-VIII
lLocale is not defined
window.locWinV =
"Variable globale (window) dans fct";
window.locWinL =
"Let globale (window) dans fct";
var vLocale= "Variable locale dans fct";
let lLocale= "Let locale dans fct";
console.log(`dirWinV = ${dirWinV}.`);
// dirWinV = Variable globale (window) directe.
console.log(`dirWinL = ${dirWinL}.`);
// dirWinL = Let globale (window) directe.
console.log(`locWinV = ${locWinV}.`);
// locWinV = Variable globale (window) dans fct.
console.log(`locWinL = ${locWinL}.`);
// locWinL = Let globale (window) dans fct.
console.log(`vLocale = ${vLocale}.`);
// vLocale = Variable locale dans fct.
console.log(`lLocale = ${lLocale}.`);
// lLocale = Let locale dans fct.
}
</script>
Création Objet espace global -6/14- mardi, 21. mai 2019 (8:35 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-VIII
Et cette version :
<script type = "text/javascript"> "use strict";
var dirWinV= "Variable globale (window) directe";
let dirWinL= "Let globale (window) directe";
console.log(`dirWinV = ${dirWinV}.`);
console.log(`dirWinL = ${dirWinL}.`);
// Ici, locWinV n'est pas encore définie.
/*
console.log(`${locWinV} | ${locWinL}`);
// ReferenceError: locWinV is not defined */
// vLocale et lLocale sont des variables
// purement locales: Elles ne peuvent pas
// être affichées ici (en dehors de leur scope).
Création Objet espace global -7/14- mardi, 21. mai 2019 (8:35 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-VIII
/*
console.log(`vLocale = ${vLocale}.`);
// ReferenceError: vLocale is not defined */
/*
console.log(`lLocale = ${lLocale}.`);
// ReferenceError: lLocale is not defined */
console.log("//** Appel de fct() **//");
// //** Appel de fct() **//
fct();
console.log("//** Fin Appel de fct() **//");
//** Fin Appel de fct() **//
console.log(`dirWinV = ${dirWinV}.`);
// dirWinV = Variable globale (window) directe.
console.log(`dirWinL = ${dirWinL}.`);
// dirWinL = Let globale (window) directe.
console.log(`locWinV = ${locWinV}.`);
// locWinV = Variable globale (window) dans fct.
console.log(`locWinL = ${locWinL}.`);
// locWinL = Let globale (window) dans fct.
// vLocale et lLocale sont des variables
// purement locales: Elles ne seront jamais
// accédées ici (en dehors de leur scope).
/*
console.log(`vLocale = ${vLocale}.`);
// ReferenceError: vLocale is not defined */
/*
console.log(`lLocale = ${lLocale}.`);
// ReferenceError: lLocale is not defined */
/***********************/
/***********************/
function fct(){
Création Objet espace global -8/14- mardi, 21. mai 2019 (8:35 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-VIII
console.log(`dirWinV = ${dirWinV}.`);
// dirWinV = Variable globale (window) directe.
/*
console.log(`dirWinL = ${dirWinL}.`);
// ReferenceError:
//
can't access lexical declaration
//
`dirWinL' before initialization. */
/*
console.log(`locWinV = ${locWinV}.`);
ReferenceError: locWinV is not defined */
//
/*
console.log(`locWinL = ${locWinL}.`);
// ReferenceError: locWinL is not defined */
console.log(`vLocale = ${vLocale}.`);
// vLocale = undefined.
/*
//
//
//
//
//
//
//
//
console.log(`lLocale = ${lLocale}.`);
Firefox :
ReferenceError:
can't access lexical declaration
`lLocale' before initialization */
Yandex :
Uncaught ReferenceError:
lLocale is not defined
window.locWinV =
"Variable globale (window) dans fct";
window.locWinL =
"Let globale (window) dans fct";
/*** Définitions de variables locales ***/
var dirWinV= "Variable locale dans fct";
let dirWinL= "Let locale dans fct";
var vLocale= dirWinV;
let lLocale= dirWinL;
/*** Fin définition de variables locales ***/
console.log(`dirWinV = ${dirWinV}.`);
Création Objet espace global -9/14- mardi, 21. mai 2019 (8:35 )
J.D.B. DIASOLUKA Nz. Luyalu
//
JavaScript Tome-VIII
dirWinV = Variable globale (window) directe.
console.log(`dirWinL = ${dirWinL}.`);
// dirWinL = Let globale (window) directe.
console.log(`locWinV = ${locWinV}.`);
// locWinV = Variable globale (window) dans fct.
console.log(`locWinL = ${locWinL}.`);
// locWinL = Let globale (window) dans fct.
console.log(`vLocale = ${vLocale}.`);
// vLocale = Variable locale dans fct.
console.log(`lLocale = ${lLocale}.`);
// lLocale = Let locale dans fct.
}
</script>
Création Objet espace global -10/14- mardi, 21. mai 2019 (8:35 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-VIII
Kinshasa, le mardi 21 mai 2019 - 8:35:03 PM
Mots-clés :
environnement global , objet par défaut , propriété , méthode , contexte
lexical , defineProperty , defineProperties , enumerable, configurable ,
writable , VARIABLES GLOBALES , VARIABLES LOCALES , objets
globaux , définition de fonction , objet window , JAVASCRIPT, Programmation Internet, keys, values, parseInt, parseFloat, toString, fonction fléchée, sloppy mode, mode strict, prototype, objet ordinaire, objet exotique,
objet standard, built-in object, Scope, contexte d’exécution, Domaine, Portée, Étendue, Visibilité, Accessibilité, durée de vie, Es10, ECMASCRIPT
2019, LiveScript, extra-dimensionnels, entités éthériques non-biologiques,
TC39, ECMA, Kaprekar
Création Objet espace global -11/14- mardi, 21. mai 2019 (8:35 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-VIII
DIASOLUKA Nz. Luyalu
Docteur en Médecine, Chirurgie & Accouchements (1977),
CNOM : 0866 - Spécialiste en ophtalmologie (1980)
Études humanités : Scientifique - Mathématiques & Physique.
Informaticien-amateur, Programmeur et WebMaster.
Chercheur indépendant, autonome et autofinancé, bénévole,
sans aucun conflit d’intérêt ou liens d'intérêts ou contrainte
promotionnelle avec qui qu’il soit ou quelqu’organisme ou
institution / organisation que ce soit, étatique, paraétatique
ou privé, industriel ou commercial en relation avec le sujet
présenté.
+243 - 851278216 - 899508675 - 991239212 - 902263541 - 813572818
[email protected]
Autre Lecture :
https://www.scribd.com/document/374738470/Le-Plus-Grand-Secret-de-LaCreation
D’autres publications pouvant aussi intéresser :
• https://www.scribd.com/document/377036251/LeDosage-Des-Medicaments-en-Cac-Cas
• https://www.scribd.com/document/377035454/LeHasard-Des-Thermometres-Non-contact-a-Infrarouge
• https://www.scribd.com/document/376222482/PetiteCréation Objet espace global -12/14- mardi, 21. mai 2019 (8:35 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-VIII
Introduction-Aux-Fonctions-JavaScript
• https://www.scribd.com/document/376221919/La-Foien-Jesus-Christ-Pour-Quoi-Faire
• https://www.scribd.com/document/375689778/Lacuitevisuelle-angulaire
• https://www.scribd.com/document/375349851/Lavariable-This
•
https://www.scribd.com/document/375024162/FonctionsImbriquees-en-JS
• https://www.scribd.com/document/374789297/FormatInterne-Des-Objets-JavaScript
•
https://www.scribd.com/document/374788758/Iterationsen-JavaScript
• https://www.scribd.com/document/374738470/Le-PlusGrand-Secret-de-La-Creation
• https://www.scribd.com/document/374597969/NouvelleFormule-d-IMC-indice-de-doduite-Selon-Dr-Diasoluka
• https://www.scribd.com/document/373847209/PropertyDescriptors
• https://www.scribd.com/document/373833282/l-ObjetGlobal-Window
•
https://www.scribd.com/document/372665249/JavascriptTome-II
• https://www.scribd.com/document/355291488/motiliteoculaire-2
• https://www.scribd.com/document/355291239/motiliteCréation Objet espace global -13/14- mardi, 21. mai 2019 (8:35 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-VIII
oculaire-I
• https://www.scribd.com/document/355290248/Script-dAnalyses-Des-Reflexes-Pupillomoteurs
•
https://www.scribd.com/document/321168468/Renseigne
ments-Id-et-Anthropometriques
•
https://www.scribd.com/document/320856721/Emission31-Jul-2016
•
https://www.scribd.com/document/318182982/Complicati
on-Visuelle-du-Traitement-de-La-Malaria
• https://www.scribd.com/document/318180637/RapportEntre-Oxymetrie-Et-Type-Respiration
•
https://www.scribd.com/document/315746265/Classificati
on-Des-Medicaments
•
https://www.scribd.com/document/315745909/Incongruen
ces-Heresies-et-Heterodoxies-de-la-Notion-deLaboratoire
• https://www.scribd.com/document/315745725/RapportEntre-Oxymetrie-Et-Type-Respiration
Création Objet espace global -14/14- mardi, 21. mai 2019 (8:35 )
Téléchargement