You are on page 1of 13

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 « win-


dow » 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 / vraisemblable-
ment « 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 « WIN-


DOW ») 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 », et en tant que propriétés de celui-
ci.

Fans 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).

Dans un environnement non global (dans une fonction) pour ac-


cé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

Création Objet espace global -2/13- lundi, 8. avril 2019 (12:40 )


J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VIII
propriétés (et méthodes) de n’importe quel objet.

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}.`);

Création Objet espace global -3/13- lundi, 8. avril 2019 (12:40 )


J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VIII
// 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(){
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 */
Création Objet espace global -4/13- lundi, 8. avril 2019 (12:40 )
J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VIII
//
// Yandex :
// Uncaught ReferenceError:
// 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 -5/13- lundi, 8. avril 2019 (12:40 )


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 -6/13- lundi, 8. avril 2019 (12:40 )


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 -7/13- lundi, 8. avril 2019 (12:40 )
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 -8/13- lundi, 8. avril 2019 (12:40 )
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 -9/13- lundi, 8. avril 2019 (12:40 )


J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VIII

Kinshasa, le lundi 8 avril 2019 - 12:40:54 PM

Mots-clés :

JAVASCRIPT, Programmation Internet, keys, values, parseInt, parseFloat,


toString, fonction fléchée, sloppy mode, mode strict, prototype, objet ordi-
naire, 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

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

diasfb@mail2world.com

Création Objet espace global -10/13- lundi, 8. avril 2019 (12:40 )


J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VIII
Autre Lecture :
https://www.scribd.com/document/374738470/Le-Plus-Grand-Secret-de-La-
Creation

D’autres publications pouvant aussi intéresser :

• https://www.scribd.com/document/377036251/Le-
Dosage-Des-Medicaments-en-Cac-Cas
• https://www.scribd.com/document/377035454/Le-
Hasard-Des-Thermometres-Non-contact-a-Infrarouge
• https://www.scribd.com/document/376222482/Petite-
Introduction-Aux-Fonctions-JavaScript
• https://www.scribd.com/document/376221919/La-Foi-
en-Jesus-Christ-Pour-Quoi-Faire
• https://www.scribd.com/document/375689778/Lacuite-
visuelle-angulaire
• https://www.scribd.com/document/375349851/La-
variable-This

https://www.scribd.com/document/375024162/Fonctions-
Imbriquees-en-JS
• https://www.scribd.com/document/374789297/Format-
Interne-Des-Objets-JavaScript

https://www.scribd.com/document/374788758/Iterations-
en-JavaScript
• https://www.scribd.com/document/374738470/Le-Plus-
Grand-Secret-de-La-Creation
• https://www.scribd.com/document/374597969/Nouvelle-
Formule-d-IMC-indice-de-doduite-Selon-Dr-Diasoluka
Création Objet espace global -11/13- lundi, 8. avril 2019 (12:40 )
J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VIII
• https://www.scribd.com/document/373847209/Property-
Descriptors
• https://www.scribd.com/document/373833282/l-Objet-
Global-Window

https://www.scribd.com/document/372665249/Javascript-
Tome-II
• https://www.scribd.com/document/355291488/motilite-
oculaire-2
• https://www.scribd.com/document/355291239/motilite-
oculaire-I
• https://www.scribd.com/document/355290248/Script-d-
Analyses-Des-Reflexes-Pupillomoteurs

https://www.scribd.com/document/321168468/Renseigne
ments-Id-et-Anthropometriques

https://www.scribd.com/document/320856721/Emission-
31-Jul-2016

https://www.scribd.com/document/318182982/Complicati
on-Visuelle-du-Traitement-de-La-Malaria
• https://www.scribd.com/document/318180637/Rapport-
Entre-Oxymetrie-Et-Type-Respiration

https://www.scribd.com/document/315746265/Classificati
on-Des-Medicaments

https://www.scribd.com/document/315745909/Incongruen
Création Objet espace global -12/13- lundi, 8. avril 2019 (12:40 )
J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VIII
ces-Heresies-et-Heterodoxies-de-la-Notion-de-
Laboratoire
• https://www.scribd.com/document/315745725/Rapport-
Entre-Oxymetrie-Et-Type-Respiration

Création Objet espace global -13/13- lundi, 8. avril 2019 (12:40 )