Objects en JavaScript



1.Définitions


JavaScript is an langage de Programmation Orienté Objet. Avec un langage 
POO, on peut définir nos propres objets, et nos propres types de variable.

Dans le logiciel JavaScript que nous utilisons, nous avons déjà des classes 
prédéfinies comme Array, Date, Image, etc ...avec leur propriétés et méthodes 
bien établies.
Unepropriété est une valeur associée à l'objet; la méthode 
est une fonction associée à l'objet.
software we are using, we have already many built-in 
 
Quand on ecrit, par exemple:
var txt = "Bonjour"; //on déclare une variable et on lui affecte la valeur "Bonjour"
document.write(txt.length); //on affiche la variable
document.write(txt.toUpperCase()); //on la transforme en lettres capitales

"txt" is an object de la clase "String"
"txt.length": Ici "length" est une propriété d'un objet de la classe "String". Elle 
est appliquée à l'objet "txt" pour retourner une valeur qui est sa longeur de chaîne, 
et qui vaut 7.

txt.toUpperCase(): ici la methode UpperCase() de la classe String, et est appliquée 
à l'object "txt". Cette application retourne BONJOUR.
It will output REGARDS.


En javaScript, on dispose de deux façons pour créer un objet:

2. Création d'objets


2.1. Création d'une instance d'un objet avec ses propriétés et ses méthodes


On le fait selon trois étapes:
- On crée une instance d'an object: nom_objet = new Object(); 
- On défini une propriété: nom_objet.nom_propriété = valeur; 
- On défini une méthode comme une fonction nom_objet.nom_méthode=nom_méthode();

Où:
Object is le nom de la classe.

- Pour accéder à une propriété d'un objet, on ecrit:
nom_objet.nom_propriété;
- Pour appliquer à une méthode à un objet, on ecrit:
nom_objet.nom_méthode();

Exemple:

<html>
<head>
<script type="text/javascript">

//On crée un objet : personne
personne = new Object();
//On lui attache trois propriétés:
personne.prenom ="Corto";
personne.nom = "Maltese";
personne.numero = 3307;
//On ajout une méthode appelée "identite"
personne.identite = identite();

function identite(){
if (personne.numero != 3308 || personne.prenom == "corto" ){
document.write("Il ne s'agit pas nécessairement de M. Maltese. ");}
else{
document.write("Ce n'est toujours pa lui!. ");
}
}
</script>
</head>

<body >
<script type="text/javascript">

//Obtenir le nom de l'objet:
document.write(personne.nom);
document.write("<br />");
//Appliquer la méthode à l'objet:
personne.identite();
</script>
</body>
</html>

L'exécution donne:





2.2. Création d'un templete d'un objet


Cette méthode de template défini la structure d'un object. C'est une 
fonction qui englobe la définition des propriétés  et des 
méthodes d'un objet courent appelé this.

Exemple:
<html>
<head>
<script type="text/javascript">
//Example:
function personne(prenom,nom,numero)
{
//Propriétés
this.prenom = prenom;
this.nom = nom;
this.numero = numero;
//Méthode
this.identite = identite;
}
Maintenant, on doit définir la méthode:
function identite(){
if (this.numero <= 1900){
document.write("Physique moderne ");}
else{
document.write("Physique classique ");
}
}

</script>
</head>
<body >
<script type="text/javascript">
//Créer 4 instances:
personne1 = new personne ("Johannes", "Kepler", 1630);
personne2 = new personne ("Isaac", "Newton", 1727);
personne3 = new personne ("Max", "Planck", 1947);
personne4 = new personne ("Erwin", "Schrodinger",1961);

//Obtenir un nom:
document.write(personne2.nom);
document.write("<br />");

//Obtenir un numero:
document.write(personne3.numero);
document.write("<br />");

//On applique la méthode à un objet
personne1.identite();
document.write("<br />");
personne4.identite();
</script>
</body>
</html>


L'exécution donne: