Cours Apps Script : objets et classes

Les objets et les classes, vous n'en créerez probablement pas souvent en Apps Script. En voici tout de même un aperçu pour comprendre de quoi il s'agit.

D'autant plus que des objets vous en avez déjà utilisé beaucoup depuis le début de ce cours.


Les objets

Un objet est une structure pouvant contenir différents types de données, en voici un exemple avec 3 propriétés :

const utilisateur = {
  nom: 'Exemple',
  prenom: 'Test',
  nbPosts: 512
};

Vous pouvez accéder à ces propriétés comme vous l'avez fait jusqu'à présent :

google apps script objet objets classes

Et les modifier comme ceci :

const utilisateur = {
  nom: 'Exemple',
  prenom: 'Test',
  nbPosts: 512
};

utilisateur.nom = 'Aperçu';
utilisateur['prenom'] = 'Testeur';
utilisateur.nbPosts++;

console.log(utilisateur); // Affiche : { nom: 'Aperçu', prenom: 'Testeur', nbPosts: 513 }

Ou en ajouter comme ceci :

const utilisateur = {};

utilisateur.pseudo = 'Test';
utilisateur['ville'] = 'Exemple';

console.log(utilisateur); // Affiche : { pseudo: 'Test', ville: 'Exemple' }

Les classes

Une classe est un modèle d'objet, avec ses propriétés et/ou ses méthodes dont vous pouvez créer autant d'instances (copies) que nécessaire.

Voici un exemple de classe avec 2 propriétés et une méthode :

class Utilisateur {

  constructor(pseudo, nbPosts) {
    this.pseudo = pseudo;
    this.nbPosts = nbPosts;
  }

  infosConsole() {
    console.log(this.pseudo + ' a écrit ' + this.nbPosts + ' posts.');
  }
}

Pour créer une instance de cette classe, entrez new suivi du nom de la classe et des arguments du constructeur :

const utilisateur1 = new Utilisateur('Test', 32);

Lorsque vous créez une instance, le constructeur est exécuté (avec les arguments renseignés).

Si vous souhaitez pouvoir utiliser les valeurs passées en argument, vous devez les affecter à des propriétés (avec this) :

this.pseudo = pseudo;
this.nbPosts = nbPosts;

Vous pouvez modifier une propriété comme ceci :

const utilisateur1 = new Utilisateur('Test', 32);

utilisateur1.pseudo = 'Testeur';

Et vous pouvez également modifier une propriété à partir d'une méthode (avec this) :

incrementerNbPosts() {
  this.nbPosts++;
}

Pour terminer, voici le code complet de cet exemple :

class Utilisateur {

  constructor(pseudo, nbPosts) {
    this.pseudo = pseudo;
    this.nbPosts = nbPosts;
  }

  infosConsole() {
    console.log(this.pseudo + ' a écrit ' + this.nbPosts + ' posts.');
  }

  incrementerNbPosts() {
    this.nbPosts++;
  }
}

function exemple() {

  // Création des utilisateurs
  const utilisateur1 = new Utilisateur('Test', 32);
  const utilisateur2 = new Utilisateur('Exemple', 512);

  // Changement du pseudo de l'utilisateur 1
  utilisateur1.pseudo = 'Testeur';

  // Augmentation de 1 du nombre de posts de l'utilisateur 2
  utilisateur2.incrementerNbPosts();

  // Affichage des informations pour les 2 utilisateurs
  utilisateur1.infosConsole(); // Affiche : Testeur a écrit 32 posts.
  utilisateur2.infosConsole(); // Affiche : Exemple a écrit 513 posts.
}

Fin

Le cours Apps Script se termine ici, en espérant qu'il vous aidera dans vos futurs développements.

Si vous avez apprécié ce cours, vous avez la possibilité de télécharger les PDF de la totalité de ce cours. Il s'agit d'une option payante complètement facultative qui contribue à soutenir le site et le développement de nouveaux contenus.

Vous trouverez également d'autres exemples de codes en Apps Script dans la partie Codes Apps Script du site.

Pour toute question, n'hésitez pas à utiliser le forum qui est là pour vous aider en cas de problème.