¶
Feuille 3
2022
Définir des objects javascript pour représenter la pizza « basique » à 8 euros cinquante, dont les ingredients sont «sauce tomate»,«mozzarella» et «jambon», et la pizza « bbq » à 9 euros cinquante, dont les ingredients sont « Râpé » , « oignons » , « poulet» , « oignons » et « sauce barbecue ».
:::solution ### Solution
let piz1=
{nom:"basique",
prix:8.50,
ingredients:["sauce tomate","mozzarella","jambon" ]
}
let piz2={
nom:'bbq',
prix:9.5,
ingredients:["Râpé","oignons","poulet","oignons","sauce barbecue"]
}
Proposer une fonction creerPizza
pour créer un objet
pizza, a partir d'un nom d'un prix et d'une liste d'ingredients.
Puis l'utiliser pour créer une pizza « basquaise » à « 8 euros 90 » dont
les ingredients sont « Râpé » « oignons » « poivrons » « poulet ».
Proposer un constructeur ou une classe pour les pizzas. Puis l'utiliser pour créer une pizza « frenchy » à « 9 euros » dont les ingredients sont « Râpé » « camembert » « herbes de Provence » « huile d'olive ».
Une commande de pizza, a un nom, une adresse et la liste des pizzas commandées On peut lui ajouter des pizzas, ou demander le prix total.
Proposer une classe pour représenter une commande.
Vous voulez garder la trace des livres que vous avez lus et de ceux que vous voulez lire.
Pour cela, créez un tableau d'objets livre , où chaque objet décrit
un livre et possède 3 propriétés le titre , l'auteur et
déjàLu
(un booléen indiquant si vous l'avez déjà lu).
Il s'agit de définir un objet chronometre
avec deux
méthodes. - demarrer
qui démarre le chronomètre -
arreter
qui l’arrête et renvoie le nombre de millisecondes
écoulées depuis le démarrage.
Si le chronomètre n'est pas démarré elle ne fait rien.
Sinon il attend qu'on lui demande de s’arrêter.
Quand on l’arrête, il affiche le temps écoulé depuis le démarrage
On pourra utiliser Date.now()
qui renvoie le nombre de
millisecondes depuis le 1er Janvier 1970.
>chronometre.start()
undefined
> chronometre.end() // presque 2 seconde après
1943
>
let chronometre={
estDemmarre:false,
current:undefined,
demarrer : function (){ this.estDemmarre=true; this.current=Date.now(); },
arreter : function (){ if(this.estDemmarre){
//sinon on ne fait rien
this.estDemmarre=false;
return Date.now()-this.current; }
}
}
On peut l'utiliser pour comparer le temps d'execution de 2 fonctions. il suffit de comparer les resultat de :
.start();f1();chronometre.end()
chronometre.start();f2();chronometre.end() chronometre
Écrire une fonction pour convertir un objet en une liste de paires.
let p={nom:"Marx",prenom:"Karl"}
> objet2List2paires(p)
'nom', 'Marx' ], [ 'prenom', 'Karl' ] ] [ [
L'objectif est ici de modéliser (de façon rudimentaire) un compte en
banque. Dans premiere version le compte un compte a juste un montant et
deux méthode, ajouter
et retirer
qui font
varier le montant.
On ne peut retirer plus que le montant present sur le compte.
Définir une classe CompteAvecDécouvert
qui hérite de
compte mais qui autorise un découvert d'un montant maximum qui peut être
fixer par une méthode fixerDécouvert
Écrivez une fonction JavaScript pour imprimer toutes les méthodes d'un objet JavaScript. On pourra utiliser getOwnPropertyNames pour obtenir un tableau de de toutes les propriétés d'un objet. Il s'agit de retenir celles qui ont une valeur fonctionnelle.
On peut éventuellement utiliser la fonctionnelle filter pour filtrer les propriétés; on peut aussi faire une boucle.