Présentation
RÉSUMÉ
Javascript est un langage de programmation pour les applications Web. Quoique assez jeune, puisque né en 1995, l’essor du Web a conféré à Javascriptune position dominante tant dans les navigateurs que maintenant côté serveurs. Cet article présente ce langage dans sa version standardisée de 2015.
Lire cet article issu d'une ressource documentaire complète, actualisée et validée par des comités scientifiques.
Lire l’articleAuteur(s)
-
Christian Queinnec : Professeur émérite de l’UPMC
INTRODUCTION
Javascript est désormais le langage du Web tant du côté des serveurs que du côté des navigateurs qu’il s’exécute sur téléphone, tablette ou ordinateur. Cet article décrit synthétiquement le langage (dans sa version ECMAScript 2015) et ses principales spécificités afin de permettre aux lecteurs, ayant une certaine pratique de l’informatique, d’appréhender les caractéristiques majeures de ce langage de programmation. Tout ne sera bien évidemment pas dit (la norme fait 566 pages) mais l’essentiel le sera.
Les exemples figurant dans cet article n’ont pas une tonalité uniforme, ils varient les styles, emploient parfois des caractéristiques en avance ou des caractéristiques mineures non nécessairement détaillées dans le texte, mais qui illustrent l’éventail des possibilités qu’offre ECMAScript 2015.
VERSIONS
- Version archivée 1 de mars 1979 par Georges GARDARIN, Richard GOMIEZ DE CÉDRON
DOI (Digital Object Identifier)
Cet article fait partie de l’offre
Technologies logicielles Architectures des systèmes
(245 articles en ce moment)
Cette offre vous donne accès à :
Une base complète d’articles
Actualisée et enrichie d’articles validés par nos comités scientifiques
Des services
Un ensemble d'outils exclusifs en complément des ressources
Un Parcours Pratique
Opérationnel et didactique, pour garantir l'acquisition des compétences transverses
Doc & Quiz
Des articles interactifs avec des quiz, pour une lecture constructive
Présentation
6. Héritage et prototypes
Javascript est un langage à prototypes, il procure donc des objets mais, nativement, pas de classe. La différence entre langages à prototypes et langages à classes tient au mécanisme de création des objets. Dans les langages à classes, tous les objets d’une même classe ont la même structure (les mêmes champs) et les mêmes comportements (méthodes). Dans les langages à prototypes, les objets sont créés par clonage. Un clone acquiert initialement toutes les propriétés et tous les comportements de l’objet souche (en Javascript, on parle de prototype). Il peut évoluer indépendamment de son prototype et acquérir (ou perdre) dynamiquement de nouveaux comportements ou propriétés.
Nous allons présenter dans un premier temps les prototypes, concept sur lequel ECMAScript 2015 a bâti un système de classes associé à de nouvelles syntaxes pour leur déclaration.
Tout objet (y compris table, fonction, expression rationnelle, etc.) possède un prototype que l’on peut obtenir via Object.getPrototypeOf et modifier via Object.setPrototypeOf.
6.1 Propriétés
Lire une propriété consiste à explorer l’objet vu comme une table associative. Si la propriété n’y est pas, alors l’exploration continue avec le prototype puis avec le prototype du prototype et ainsi de suite tant que le prototype n’est pas null. On peut donc dire qu’un objet hérite de son prototype.
En revanche, modifier une propriété s’effectue dans l’objet. Une propriété modifiée masque donc la propriété qui aurait éventuellement été héritée (figure 34).
Le chaînage des prototypes fait que l’on distingue les propriétés propres à un objet de celles qui sont héritées via ses prototypes. La fonction Object.hasOwnProperty permet de vérifier si un objet a, en propre, une certaine propriété. La fonction Object.getOwnPropertyNames permet de lister toutes les propriétés (énumérables ou pas) contenues en propre, par un objet alors que for (var name in object) ... liste toutes les propriétés énumérables que l’objet possède en propre ou pas. Enfin, Object.keys ne liste que les propriétés énumérables que l’objet possède seulement en propre.
...Cet article fait partie de l’offre
Technologies logicielles Architectures des systèmes
(245 articles en ce moment)
Cette offre vous donne accès à :
Une base complète d’articles
Actualisée et enrichie d’articles validés par nos comités scientifiques
Des services
Un ensemble d'outils exclusifs en complément des ressources
Un Parcours Pratique
Opérationnel et didactique, pour garantir l'acquisition des compétences transverses
Doc & Quiz
Des articles interactifs avec des quiz, pour une lecture constructive
Héritage et prototypes
BIBLIOGRAPHIE
NORMES
-
ECMAScript® 2016 language specification - ECMA-262 - 2016
-
IEEE Standard for the Scheme Programming Language - IEEE Std 1178-1990 - 1990
-
Information technology Universal Coded Character Set (UCS) - ISO/IEC 10646 : 2014 - 2014
-
Standard for Binary Floating – Point Arithmetic - IEEE 754 - 2008
ANNEXES
Node https://nodejs.org/
Babel.js http://babeljs.io/
MongoDB https://www.mongodb.org/
JQuery https://jquery.com/
lodash https://github.com/lodash/lodash
Rhino https://github.com/mozilla/rhino
ES6 compatibility https://kangax.github.io/compat-table/es6/
HAUT DE PAGECet article fait partie de l’offre
Technologies logicielles Architectures des systèmes
(245 articles en ce moment)
Cette offre vous donne accès à :
Une base complète d’articles
Actualisée et enrichie d’articles validés par nos comités scientifiques
Des services
Un ensemble d'outils exclusifs en complément des ressources
Un Parcours Pratique
Opérationnel et didactique, pour garantir l'acquisition des compétences transverses
Doc & Quiz
Des articles interactifs avec des quiz, pour une lecture constructive