Systèmes de communication

JavaScript: objets prédéfinis et création d'objet (3)

Math | String | Date

Math est une classe abstraite (sans variable d'instance) serveuse de méthodes (les nombres de sont pas des objets !): Math.sqrt(8)

Les "string" se comportent comme des objets, on note: "qwertz".bold . Mais alors que bold, IndexOf, etc. sont des méthodes, length est une propriété !

Les dates se comportent également comme des objets. De plus, il est nécessaire d'utiliser un constructeur: Today = new Date().

Création d'objets

Constructeur

function personne(nom, prenom, annee_naiss) {
this.nom = nom;
this.prenom = prenom;
this.annee_naiss = annee_naiss;
}

Création et initialisation de l'objet pers1: pers1 = new personne("adamo", "marie", 1967)


Objet avec méthode

function displayPersonne() {
var result = this.prenom + " " + this.nom + "/année de naissance: " + this.annee_naiss ;
pretty_print(result)
}

function personne(nom, prenom, annee_naiss) {
this.nom = nom;
this.prenom = prenom;
this.annee_naiss = annee.naiss;
this.displayPersonne=displayPersonne;
}

Utilisation de la méthode: pers1.displayPersonne()


Manipulation des objets

function plist(obj, obj_name) {
var result = ""
// i parcourt les attributs de l'objet
for (var i in obj)
{ result += obj_name + "." + i + " = " + obj[i] + "<BR>"}
return result;
}

Utilisation: plist(pers1, "pers1")


Création d'un objet "tableau"

function Array(n) {
this.length = n
for(i=1; i<=n ; i++) {
this[i]=0
}
return this
}

Fabrication d'un tableau de dimension 5: tableau = new Array(5)

Les valeurs sont dans tableau[i] i = 1,..,5; tableau[0] = tableau.length

Dès la version 1.2 de JavaScript cette classe des tableaux est prédéfinie ! Dans ce cas, la propriété tableau.length est définie n'est plus tableau[0] !


Nouvelles versions


Exercice: Organiser une prise de donnée à l'aide d'un formulaire. Un bouton "envoi" crée un objet (une personne) et l'initialise avec les valeurs entrées par l'utilisateur. Un autre bouton affiche le contenu de l'objet dans une fenêtre.

Exercice: Même question, mais les données rentrées sont enregistrées dans un tableau. Un bouton affiche le contenu du tableau.

Exercice: Créer une méthode qui donne l'âge d'une personne (à partir de l'année de naissance et de today = new Date() et today.getYear() ).

Exercice: Des données d'articles (nom et prix) sont embarquées dans un "frameset". Le nom des articles est affiché dans le 'frame' de gauche avec un lien. En cliquant sur le lien l'article apparaît dans le 'frame' de droite, avec son prix et un prix total sur l'ensemble des articles figurant à droite.