Javascript les spécificités du langage - Partie 3 -

Slides:



Advertisements
Présentations similaires
La programmation orientée objet avec Java L3-MIAGE Plan
Advertisements

1 JavaScript V0 : Nauer. 2 JavaScript Quid ? Langage de programmation lié à HTML. Code JavaScript intégré aux pages HTML. Code interprété par le navigateur.
PHP5 its a kind of magic. Chargement automatique function __autoload( $nom_classe ) { require_once('obj/'.$nom_classe.'.class.php'); } si on exécute le.
LE LANGAGE JAVASCRIPT LES FENETRES.
Interactivé: L'Action Script.
Introduction à la programmation objet Langage Java
Création de pages Web dynamiques et sympathiques.
Copyright France Télécom, tous droits réservés Paris Web Ateliers Les bibliothèques JS jQuery Orange Labs Julien Wajsberg, Recherche & Développement.
NOTION DE FONCTION 1. Un exemple de fonction
PHP5 poo.
PHP5 its a kind of magic. Chargement automatique function __autoload( $nom_classe ) { require_once('obj/'.$nom_classe.'.class.php'); } si on exécute le.
Programmation Orientée Objet (POO)
Virtools Olivier Lamotte.
Les attributions de valeur (le signe =). Dans cette présentation, nous allons tenter de représenter ce qui se passe dans la mémoire de lordinateur quand.
Introduction à la POO: Les classes vs les objets
Javascript les spécificités du langage - Partie 7 -
Faculté I&C, Claude Petitpierre, André Maurer Bases de données Javascript – SQL - LemanOS.
Javascript les spécificités du langage - Partie 6 -
Javascript les spécificités du langage - Partie 2-
JavaBeans Réalise par: EL KHADRAOUY TARIK AOUTIL SAFOWAN.
Faculté I&C, Claude Petitpierre, André Maurer What is this ? (Quest ce que this ?)
Présentation de la séquence de cours sur les interactions HTML-javascript Laure Walser, 11 juin 2010.
Objets Javascript Mécanismes internes Le concept et la construction dobjets
Chapitre VIII Structures dobjets. Chapitre VIII - Structures d'objets2 Structures d objets Il existe plusieurs relations entre les classes. Lhéritage.
Introduction au paradigme objet Concepts importants surcharge (overload) redéfinition (override) Définition d’une classe Définition des attributs.
77 Utilisation des classes (suite). 7-2 Objectifs A la fin de ce cours, vous serez capables de : Définir des méthodes surchargées dans une classe Fournir.
Python La programmation objet
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 5 – Héritage, Interfaces et Listes génériques.
Leçon 2 : Surcharge des opérateurs IUP 2 Génie Informatique Méthode et Outils pour la Programmation Françoise Greffier Université de Franche-Comté.
Introduction à la programmation objet Langage Java
Introduction à la programmation I Fonctions Structures de contrôle Structures de données (arrays simples et indexés) Variables locales et globales.
AJAX.
COURS DE PROGRAMMATION ORIENTEE OBJET :
Leçon 1 : notion dobjet IUP Génie Informatique Besançon Méthode et Outils pour la Programmation Françoise Greffier Université de Franche-Comté.
Faculté I&C, Claude Petitpierre, André Maurer Le parallélisme Introduction.
Texture 2D en PGC++.
Animateur : Med HAIJOUBI
TP n°2 Javascript EVENEMENTS ET OBJETS
Travaux Pratiques Représentation des connaissances
Javascript 2° PARTIE : EVENEMENTS ET OBJETS
Javascript les spécificités du langage - Partie 5 -
JavaScript Nécessaire Web.
4 Introduction des objets. Les chaînes et tableaux
LIFI-Java 2004 Séance du Mercredi 22 sept. Cours 3.
La notion de type revisitée en POO
Cours 61 6 La sécurité, Portée, Visibilité Programmer avec sécurité.
11/04/ L'héritage Cours 7 Cours 7.
Les balises HTML et les objets JavaScript correspondants Objet document L'objet document est important dans la mesure ou il contient tous les objets du.
12/04/ Le polymorphisme Cours 8 Cours 8.
Cours C++ Fonctions Surcharge d’opérateurs Passage d’arguments
Tutorat en bio-informatique
Résumé des concepts liés aux objets C. Petitpierre, EPFL.
PHP 7° PARTIE : PROGRAMMATION OBJET
Tutorat en bio-informatique Le 14 novembre Au programme… Les objets –Propriétés (attributs) –Constructeurs –Méthodes.
Réaliser par: Sadok Amel Cheboui hassiba
PHP objet Jérôme CUTRONA 10:13:27 Programmation Web
Les classes présenté par: RAHMOUNE RIME / ZEKRI SELMA.
Les classes et les objets Les données finales class A { … private final int n = 20 ; // la valeur de n est définie dans sa déclaration … } class A { public.
Variables et environnement utilisateur W. Barhoumi.
Cours 4 (14 octobre) Héritage. Chapitre III Héritage.
6ième Classe (Mercredi, 17 novembre) CSI2572
Conception de Programmes - IUT de Paris - 1ère année Les classes Introduction Déclaration d’une classe Utilisation d’une classe Définition des.
** Flash séance 2 Action script. ** Action Script Ajoute de l’interactivité Permet de contrôler les clips  Langage de programmation orienté objet.
Flash MX – Séance 2 Interactions & ActionScript David Rapin Si28 P06.
Télécharger :
Dreamweaver 2 Feuilles de Style CSS Formulaires Calques Comportements
LES CLASSES ET LES OBJETS
ListView et Adapter O.Legrand G. Seront. ListView & GridView
Transcription de la présentation:

Javascript les spécificités du langage - Partie 3 -

Le scope (portée des variables) Une des principales particularités de Javascript est également la portée de variable qui ne correspond pas à dautres langages. Les variables ont une portée descendante à partir de là où elles sont définie. var variable1 = 10; var fonction1 = function() { alert(variable1); var variable2 = 12; this.methode = function() { var variable3 = 14; alert(variable1); alert(variable2); } alert(typeof(variable3)); }

Le scope (portée des variables) // Affiche 10 // Affiche undefined var monObjet = new fonction1(); // Affiche 10 // Affiche 12 monObjet.methode();

Le scope (portée des variables) Dans ce cas « this » ne désigne plus la fonction englobante mais lélément sur lequel a été lié lévénement, c'est-à-dire « window ». « this » a donc changé de scope. var maFonction = function() { window.onload = function() { console.log(this); } maFonction(); Le « this » à lintérieur dun objet nest pas obligatoirement lobjet lui-même, le contexte peut être modifié par la fonction appelante. Cest le cas des gestionnaires dévénements (event handlers) à lintérieur dune fonction :

Apply et Call, la contextualisation Il est également possible de contextualiser une fonction par rapport à une autre. On peut alors, lors dun appel à une fonction, faire correspondre son « this » à celui dune autre, cela permet dappliquer une unique fonction sur différents objets

Apply et Call, la contextualisation function getColor() { return this.couleur; } function Voiture(marque, modele, couleur) { this.marque = marque; this.modele = modele; this.couleur = couleur; } function Rectangle(largeur, hauteur, couleur) { this.largeur = largeur; this.hauteur = hauteur; this.couleur = couleur; } var maVoiture = new Voiture('Renault', 'R5', 'rouge'); var monRectangle = new Rectangle(10, 12, 'vert'); // Affiche rouge alert( getColor.apply(maVoiture) ); // Affiche vert alert( getColor.apply(monRectangle) );

Apply et Call, la contextualisation Dans ce cas, la fonction qui récupère la couleur est la même, alors que les deux objets sont radicalement différents (une voiture et un rectangle). Cela va nous permettre de travailler sur des contextes différents avec la même unique fonction, dans des langages objets plus traditionnels seul lhéritage le peut et encore, il faut que les deux classes aient un lien de parenté.

Apply et Call, la contextualisation La seule différence quil existe en « apply » et « call » cest le passage des arguments, dans le premier cas il sont passés dans un tableau après le paramètre dinstance, dans le second les arguments sont propagés : maFonction.apply(instance, tableau); maFonction.call(instance, p1, p2, p3,...);

Apply et Call, la contextualisation Les fonctions natives de Javascript sont prévues pour être recontextualisées elles peuvent donc souvent fonctionner sur un objet pour laquelle elle na pas été destinée à lorigine, par exemple : //monTableau vaut ["a","b"] var monTableau = ".trim.apply([" a","b "]).split(","); //monTableau vaut ["div","h1","span"] var monTableau = "".toLowerCase.apply(["DIV","H1","SPAN"]).split(","); //monTableau vaut ["a16", "b44"] var monTableau = "".match.call(["a16","b44","b bar"],/[a-z][0-9]+/g); //monTableau vaut ['Argentina',"Brazil","Chile"] var monTableau = "".replace.call( ['argentina','brazil','chile'], /\b./g, function( a ){ return a.toUpperCase(); } ).split(',');