Les objets dans Apps Script

Dans Apps Script, les objets sont utilisés pour organiser les valeurs de votre programme qui sont liées entre elles.

Par exemple, imaginez que vous créez une application destinée aux enseignants pour marquer la présence des élèves dans une école. Cette application doit stocker et traiter certaines informations pour chaque élève, comme :

  • Leur prénom
  • Leur nom de famille
  • Leur classe
  • Leur section

Au lieu d’utiliser plusieurs variables distinctes, vous pouvez regrouper ces informations dans un objet.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
let eleve = {
prenom : "Manon",
nom : "Martin",
section : "A",
classe : "maternelle"
};
let eleve = { prenom : "Manon", nom : "Martin", section : "A", classe : "maternelle" };
let eleve = {
    prenom : "Manon",
    nom : "Martin",
    section : "A",
    classe : "maternelle"
};

Avec cet objet, il est clair que toutes ces données sont liées et représentent un élève spécifique.

Qu’est-ce qu’un objet ?

Un objet est une valeur qui contient d’autres valeurs appelées propriétés. Chaque propriété est composée d’un nom (la clé) et de sa valeur correspondante, formant un paire clé-valeur.

Voici une représentation simple :

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
let eleve = {
prenom : "Manon",
nom : "Martin",
classe : "maternelle"
};
let eleve = { prenom : "Manon", nom : "Martin", classe : "maternelle" };
let eleve = {
    prenom : "Manon",
    nom : "Martin",
    classe : "maternelle"
};

Créer un objet dans Apps Script

Vous pouvez créer un objet vide avec des accolades ({}) :

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
let eleve = {};
Logger.log(eleve); // {}
let eleve = {}; Logger.log(eleve); // {}
let eleve = {};
Logger.log(eleve); // {}

Ensuite, vous pouvez définir ses propriétés et leurs valeurs à l’aide de la notation par points :

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
let eleve = {};
eleve.prenom = "Jean";
eleve.nom = "Lorbin";
eleve.age = 4;
Logger.log(eleve); // {prenom=Jane, nom=Lee, age=4.0}
let eleve = {}; eleve.prenom = "Jean"; eleve.nom = "Lorbin"; eleve.age = 4; Logger.log(eleve); // {prenom=Jane, nom=Lee, age=4.0}
let eleve = {};
eleve.prenom = "Jean";
eleve.nom = "Lorbin";
eleve.age = 4;
Logger.log(eleve); // {prenom=Jane, nom=Lee, age=4.0}

Accéder et supprimer des propriétés

Vous pouvez accéder aux valeurs d’un objet en utilisant la notation par points :

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Logger.log(eleve.prenom); // Jean
Logger.log(eleve.nom); // Lorbin
Logger.log(eleve.age); // 4.0
Logger.log(eleve.prenom); // Jean Logger.log(eleve.nom); // Lorbin Logger.log(eleve.age); // 4.0
Logger.log(eleve.prenom); // Jean
Logger.log(eleve.nom); // Lorbin
Logger.log(eleve.age); // 4.0

Pour supprimer une propriété et sa valeur associée, utilisez l’opérateur delete :

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
delete eleve.age;
Logger.log(eleve.age); // undefined
delete eleve.age; Logger.log(eleve.age); // undefined
delete eleve.age;
Logger.log(eleve.age); // undefined

Définir plusieurs propriétés à la fois

Vous pouvez définir plusieurs propriétés lors de la création de l’objet :

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
let eleve = {
prenom : "Manon",
nom : "Martin",
section : "A",
classe : "maternelle"
};
let eleve = { prenom : "Manon", nom : "Martin", section : "A", classe : "maternelle" };
let eleve = {
    prenom : "Manon",
    nom : "Martin",
    section : "A",
    classe : "maternelle"
};

Note : Utilisez un deux-points (:) pour séparer une propriété de sa valeur, et une virgule (,) après chaque paire clé-valeur, sauf pour la dernière.

Notation par crochets

Vous pouvez également accéder à une propriété à l’aide de la notation par crochets :

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
eleve["prenom"]; // "Manon"
eleve["prenom"]; // "Manon"
eleve["prenom"]; // "Manon"

Les deux notations suivantes sont équivalentes :

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
eleve.prenom; // Notation par points
eleve["prenom"]; // Notation par crochets
eleve.prenom; // Notation par points eleve["prenom"]; // Notation par crochets
eleve.prenom; // Notation par points
eleve["prenom"]; // Notation par crochets

Méthodes

Si la valeur associée à une propriété est une fonction, la propriété devient une méthode.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
let eleve = {};
eleve.prenom = "Jean";
eleve.nom = "Lorbin";
eleve.age = 4;
eleve.getInfoParent = function() {
return "Informations sur les parents.";
};
Logger.log(eleve);
let eleve = {}; eleve.prenom = "Jean"; eleve.nom = "Lorbin"; eleve.age = 4; eleve.getInfoParent = function() { return "Informations sur les parents."; }; Logger.log(eleve);
let eleve = {};
eleve.prenom = "Jean";
eleve.nom = "Lorbin";
eleve.age = 4;
eleve.getInfoParent = function() {
    return "Informations sur les parents.";
};
Logger.log(eleve);

Vous pouvez accéder au code de la méthode ou l’exécuter :

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
eleve.getInfoParent; // Retourne le code de la fonction
eleve.getInfoParent(); // Exécute la fonction et retourne sa valeur
eleve.getInfoParent; // Retourne le code de la fonction eleve.getInfoParent(); // Exécute la fonction et retourne sa valeur
eleve.getInfoParent; // Retourne le code de la fonction
eleve.getInfoParent(); // Exécute la fonction et retourne sa valeur

Vérifier si une propriété existe

Utilisez l’opérateur in pour vérifier si une propriété existe dans un objet :

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
let eleve = {
prenom : "Manon",
nom : "Martin",
section : "A",
classe : "maternelle"
};
Logger.log("prenom" in eleve); // true
Logger.log("age" in eleve); // false
let eleve = { prenom : "Manon", nom : "Martin", section : "A", classe : "maternelle" }; Logger.log("prenom" in eleve); // true Logger.log("age" in eleve); // false
let eleve = {
    prenom : "Manon",
    nom : "Martin",
    section : "A",
    classe : "maternelle"
};

Logger.log("prenom" in eleve); // true
Logger.log("age" in eleve); // false

Après avoir ajouté une nouvelle propriété :

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
eleve.age = 4;
Logger.log("age" in eleve); // true
eleve.age = 4; Logger.log("age" in eleve); // true
eleve.age = 4;
Logger.log("age" in eleve); // true

La suite du cours Apps Script avec l’article : Les tableaux (Arrays) dans Apps Script