Programmation JavaScript/Programmation objet
Programmation objet
modifierDans la programmation orientée objet, le programme est conçu pour que ses composants soient aussi modulaires que possible. En particulier, quand un nouveau type d'objet est créé, il devrait fonctionner sans problèmes lorsqu'il est placé dans un environnement différent ou nouveau projet de programmation, c'est à dire qu'il est indépendant. Le résultat est une réduction du temps passé dans la réécriture de code.
JavaScript utilise des objets pour représenter des types de données complexes. Ces objets sont de petites structures de données avec leurs propres champs et des fonctions d'accès ou de modification de ces données. Ces objets bénéficient d'une approche où les variables sont protégées de toute ingérence extérieure. Si les variables peuvent être modifiées directement par le code d'un programme en dehors de la fonction ou de l'objet, alors il ne peut plus être tributaire de donner un résultat précis.
Contrairement à d'autres langages de programmation, JavaScript n'a pas de niveaux de protection sur les membres d'un objet. JavaScript utilise un prototype de forme des objets, qui peuvent encore hériter de classes des parents, mais n'est pas une forme pure de langage orienté objet ; il s'agit un langage de programmation objet par prototype. Cependant, la plupart des modèles de conception peut encore s'appliquer au langage tant que l'on ne cherche pas à accéder directement à l'état interne de l'objet (par exemple, en utilisant les méthodes d'un objet).
Comme avec d'autres langages de programmation, en JavaScript, les références aux champs et fonctions d'un objet utilisent le point (.) entre l'objet et le nom du champ.
Mot clé new
modifierLe mot clé new
crée un nouvel objet.
item = new Object();
Méthodes et champs d'un objet
modifierDans JavaScript, les objets n'ont pas de forme fixe - ils peuvent se modifier en cours d'exécution pour crée un nouvel objet, ou pour créer des champs ou fonctions.
money = new Object();
money.quarters = 10;
Comme on le voit plus bas, on peut créer des méthodes pour l'objet de la même manière.
Function et prototype
modifierEn JavaScript, qui est un langage de programmation orientée prototype, chaque objet hérite des attributs et méthodes de son prototype.
Exemple :
function Animal(race, sex)
{
this.race = race;
this.sex = sex
manger = function()
{
return "je mange";
}
}
Animal.prototype.attaquer = function(){
alert("J'attaque");
};
var anim = new Animal("labrador","male");
anim.age = 10;
anim.courir = function(vitesse){
alert("Je cours à "+vitesse+" km/h");
};
// ->
anim.courir(50);
anim.attaquer();
Mot clé this
modifierLe mot clé this
est utilisé dans une méthode, et se réfère à l'objet qui est attaché à cette méthode.
money.addQuarters = function(amount) {
this.quarters += amount;
}
money.addQuarters(10);
Paradigme de programmation classe/objet
modifier/**
* Modélisation d'une voiture
*
* @class Voiture
*/
var Voiture = (function () {
//'use strict';
Voiture.couleur = "verte";
// methode de classe
Voiture.construire = function (marque) {
return new Voiture(marque);
};
// constructeur
function Voiture(marque) {
this.marque = marque;
}
// méthodes d'instance
Voiture.prototype = {
rouler: function (direction) {
document.write("la voiture roule");
},
getMarque: function (){
return this.marque;
}
};
return Voiture;
}());
// ->
var saab = new Voiture('Saab');
var chrysler = Voiture.construire('Chrysler');
chrysler.rouler();
alert(saab.getMarque());