Programmation JavaScript/Programmation objet

Un livre de Wikilivres.
Aller à : navigation, rechercher
Programmation JavaScript
Programmation JavaScript
Sommaire
  1. Introduction 100%.svg
  2. Présentation
  3. Syntaxe 50%.svg
    1. Ligne d'instruction 100%.svg
    2. Ordre d'évaluation 100%.svg
    3. Bloc d'instructions 100%.svg
    4. Identificateurs 100%.svg
    5. Expression littérale 100%.svg
    6. Commentaire 100%.svg
    7. Mots réservés et constantes 100%.svg
    8. Variables 100%.svg
    9. Opérateurs 100%.svg
    10. Structures de contrôle 75%.svg
      1. if else
      2. ? :
      3. switch
      4. for
      5. while
      6. do
    11. Fonctions utilisateur 100%.svg
    12. Évènement 75%.svg
  4. Objets prédéfinis 00%.svg
    1. window 25%.svg
    2. document 25%.svg
    3. navigator 25%.svg
    4. Array (tableaux) 100%.svg
    5. Boolean 00%.svg
    6. Date 25%.svg
    7. Error 00%.svg
    8. Function 00%.svg
    9. Math 25%.svg
    10. Number 25%.svg
    11. Object 00%.svg
    12. RegExp 00%.svg
    13. String 25%.svg
  5. Fonctions prédéfinies
  6. Mise en œuvre
  7. Programmation avancée
    1. Opérateurs de bits 00%.svg
    2. Programmation objet 00%.svg
    3. Gestion d'évennements 00%.svg
    4. Exceptions et erreurs 00%.svg
    5. Interface DOM 00%.svg
    6. Objets Microsoft 00%.svg
    7. Applets Java 00%.svg
    8. Notation JSON 00%.svg
    9. AJAX 00%.svg
  8. Debuggage
  9. Exemples commentés
  10. Références00%.svg
    1. Évènements
    2. Liens
Modifier ce modèle ce sommaire

Programmation objet[modifier | modifier le wikicode]

Dans 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[modifier | modifier le wikicode]

Le mot clé new crée un nouvel objet.

item = new Object();

Object methods and fields[modifier | modifier le wikicode]

Dans 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 prototypes[modifier | modifier le wikicode]

		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.courrir = function(vitesse){
			alert("Je cours à "+vitesse+" km/h");
		};
 
                // ->
		anim.courrir(50);
		anim.attaquer();

mot clé this[modifier | modifier le wikicode]

Le 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 | modifier le wikicode]

/**
 * 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());