Une classe, est un ensemble de fonctions qu'on veut associer à des données que les fonctions partagent entre elles.
Les fonctions d'une classe sont appelées méthodes. Les données de la classes sont nommées attributs.
URL¶const url = new URL("https://www.example.com/personne?nom=didier&age=38");
console.log(url.hostname) // www.example.com
console.log(url.search); // ?nom=didier&age=38
console.log(url.pathname) // /personne
console.log(url.pathname) // url.protocol
class Politicien{
}
const politicien = new Politicien();
Politicien est un peu comme l'objet vide {}Politicienclass JackOfAllTrade{
add(a, b){
return a + b;
}
multiply(a, b){
return a * b;
}
}
const jackOfAllTrade = new JackOfAllTrade();
console.log(jackOfAllTrade.add(4, 7));
console.log(jackOfAllTrade.multiply(7, 3));
Pour utiliser les méthodes JackOfAllTrade il faut avant, créer une instance de la classe:
const jackOfAllTrade = new JackOfAllTrade();
L'utilisation des méthodes se fait avec la convention <instance>.<méthode>
console.log(jackOfAllTrade.add(4, 7))
class JackOfAllTrade{
add(a, b){
return a + b;
}
}
Les méthodes sont écrites à l'intérieur de la classe
La syntaxe d'une méthode est la même que celle d'une fonction... sauf sans le mot réservé function.
Une méthode est "genre" une fonction
toSnakeCase est une fonction qui convertie une phrase en snake case. Par exemple petit lapin blanc deviendra petit_lapin_blanctoKebabCase est une fonction qui convertie une phrase en kebab case. Par exemple petit lapin blanc deviendra petit-lapin-blanctoCamelCase est une fonction qui convertie une phrase en camel case. Par exemple petit lapin blanc deviendra petitLapinBlancon aime javascript dans les différents typesthis¶
Imaginons créer ajouter une méthode add2plus5 dans la classe JackOfAllTrade
class JackOfAllTrade{
add2plus5(a){
return (a + 2) * 5;
}
}
add et multiply déjà existantesLa bonne solution est la suivante.
class JackOfAllTrade{
add2plus5(a){
const aPlus2 = this.add(a,2)
return this.multiply(aPlus2, 5);
}
}
this¶Le mot réservé this permet à une méthode d'appeler une autre méthode dans une classe!
this.
Lorsque nous appelons new Person("didier", 38) le constructeur est appelé.
Le constructeur est une fonction "spéciale" qui est uniquement appelé lors de la création d'une instance
Le constructeur devrait uniquement "placer" des données
Le constructeur est une méthode appelé "constructor"
class Point{
constructor(x, y){
this.x = x;
this.y = y;
}
distanceFromOrigin(){
return Math.sqrt(this.x * this.x + this.y * this.y);
}
}
p = new Point(3, 4);
console.log(p.distanceFromOrigin());
Un constructeur ne devrait avoir que des
this.chose = choseet, peut-être, des validations très simple. Tout le reste ne devrait pas être dans un constructeur
-- le meilleur programmeur au monde