Javascript est-il orienté objet - Caractéristiques de l'objet orienté

Table des matières:

Anonim

Introduction à JavaScript

JavaScript est également abrégé car JS est un langage de programmation interprété de haut niveau. JavaScript est l'une des trois technologies principales du World Wide Web. JavaScript permet de créer une page Web interactive autre que des pages Web statiques. La plupart des sites Web utilisent JS pour le développement et les principaux navigateurs Web ont un moteur JavaScript pour l'exécuter. JavaScript est un langage de programmation interprété léger, faiblement typé, basé sur un prototype et doté de capacités orientées objet. JavaScript est utilisé pour le développement côté client d'applications Web, il est inclus ou référencé par un fichier HTML afin que le code soit rendu dans le navigateur. De nos jours, JavaScript n'est pas seulement utilisé pour le développement côté client mais également pour la programmation côté serveur, il existe différents cadres disponibles qui sont construits en utilisant JavaScript comme Node.js. Node.js a beaucoup de modules pour développer des microservices, des API, des connexions de base de données beaucoup plus. Le mécanisme JavaScript côté client offre de nombreux avantages par rapport aux scripts CGI traditionnels. JavaScript peut être utilisé pour agir sur la base d'événements déclenchés par l'utilisateur, comme cliquer sur les boutons, les navigations, les messages contextuels, etc., et il est également utilisé pour la validation côté client. par exemple, vous pouvez valider les champs comme email, mot de passe, etc., sur le formulaire avant de le soumettre au serveur web.

Le langage JavaScript est-il orienté objet?

La question de savoir si JavaScript est un langage orienté objet pur ou non est toujours discutable. Alors maintenant, nous allons effacer que Javascript est orienté objet car certains disent qu'il n'est pas orienté objet car il n'a pas de classes et ne peut pas implémenter des concepts OOP comme l'héritage ou l'encapsulation et certains disent qu'il s'agit d'un langage orienté objet. Avant de discuter de cette rubrique JavaScript orientée objet, il faut comprendre que qu'est-ce qui fait d'un langage de programmation un langage de programmation orienté objet?

Il existe peu de caractéristiques importantes d'un langage orienté objet:

  • Polymorphisme:

La capacité de l'objet à prendre plusieurs formes. Par exemple, la fonction peut être surchargée avec le même nom mais des paramètres différents.

  • Encapsulation:

Lier toutes les données et les opérations ensemble et les conserver dans une classe.

  • Héritage:

La classe enfant peut être dérivée de la classe parent avec toutes les fonctionnalités de la classe parent et certaines de ses propres propriétés.

Ces trois principes mentionnés ci-dessus forment la base d'un langage orienté objet.

Donc, JavaScript peut ne pas suivre le paradigme exact des principes orientés objet, mais JavaScript a différentes façons de mettre en œuvre la POO. Nous pouvons montrer comment JavaScript suit les principes orientés objet en prenant quelques exemples:

Encapsulation:

L'idée de l'encapsulation est que les données d'un objet ne doivent pas être accessibles directement, mais plutôt via certaines méthodes. Mais en JavaScript, il n'y a pas de concept de classe et d'objets, il implémente l'encapsulation de deux manières: la portée et la fermeture de la fonction

1) Portée de la fonction:

Ce n'est rien d'autre que déclarer les variables à l'intérieur des fonctions. Ainsi, la portée des variables sera limitée uniquement aux fonctions et les autres objets ne pourront pas accéder aux variables. Prenons un exemple pour illustrer l'étendue de la fonction.

test de fonctionnalité()
(
var value = "Bonjour!";
alert (valeur) // "Bonjour!";
)
alert (valeur) // error; la valeur n'est pas disponible en dehors de la fonction.

2) Fermetures:

La fermeture est une portée interne qui a accès aux variables déclarées en dehors de son bloc, même après que ces variables sont tombées hors de la portée. Bien que les méthodes d'un objet ne puissent pas accéder aux autres variables locales, un objet interne a accès aux variables de sa fonction parent. Prenons un exemple pour comprendre cela.

var person = (
var name = “JavaScript”;
return (
setName : function(value)(
name = value;
),
getName : function()(
return name;
)
);
);
alert(person.name) //JavaScript
person.setName(“Java”)
alert(person.name) //Java

Ainsi, de cette manière, nous pouvons déclarer des objets internes ou des méthodes pour masquer les données et ceux-ci sont accessibles en utilisant des objets parents.

Héritage:

JavaScript prend en charge l'héritage via le concept appelé héritage prototypique qui permet à l'objet JavaScript d'acquérir tout ou partie des fonctionnalités d'autres objets ou objets parents.

1) Prototype:

JavaScript est décrit comme un langage basé sur un prototype, pour fournir un objet d'héritage peut avoir un objet prototype qui hérite des méthodes et des propriétés d'autres objets. Un objet prototype objet peut également avoir un objet prototype qui hérite des méthodes et des propriétés de son objet parent et ainsi de suite, c'est ce qu'on appelle la chaîne prototype.

L'image ci-dessus montre toutes les propriétés de l'objet «animal» en cours de création. Ainsi, le «nom» et le «type» sont les propriétés d'un objet «animal» et les propriétés comme valueOf, toString, toLocaleString, etc. sont les propriétés d'un objet parent héritées de l'objet animal. Reportez-vous à l'image ci-dessous qui montre les propriétés de l'objet parent à l'aide de la propriété proto.

Polymorphisme:

Poly signifie «beaucoup», le morphisme signifie «formes», le polymorphisme n'est rien d'autre que d'avoir des formes différentes. En JavaScript, le polymorphisme est obtenu par un sous-typage générique, en surcharge et structurel.

1) Génériques (polymorphisme paramétrique):

Cela signifie que le type de la variable n'a pas d'importance du tout, ils sont interchangeables. Une fonction qui définit un ou plusieurs paramètres du type polymorphe paramétrique ne doit rien savoir des types, elle doit les traiter tous de la même manière car elle peut s'adapter à n'importe lequel des types. Reportez-vous à l'exemple ci-dessous

const data = x => y => y.concat (x);

données (3) ((1, 2)); // (1, 2, 3)

données («c») ((«a», «b»)); // ("a", "b", "c")

2) Surcharge (polymorphisme ad hoc):

La surcharge en JavaScript est obtenue en utilisant un polymorphisme as-hoc. Le polymorphisme ad hoc est une sorte de polymorphisme dans lequel des fonctions polymorphes peuvent être appliquées à des arguments de plusieurs types car les fonctions polymorphes peuvent dénoter le nombre d'implémentations hétérogènes distinctes selon les types d'arguments. Reportez-vous à l'exemple mentionné ci-dessous

L'opérateur «+» est utilisé de plusieurs façons, comme l'ajout de nombres, la concaténation des chaînes, etc.

1 + 2 = 3

1, 2 + 2, 3 = 3, 5

"Java" + "Script" = "JavaScript"

3) Sous-typage structurel (polymorphisme structurel):

Le polymorphisme structurel dit que différents types sont équivalents, par exemple si un type a toutes les propriétés de l'autre type avec quelques propriétés supplémentaires (suivant la même structure)

Poids const = (valeur: 100, données: vrai)

Const speed = (valeur: 200, données: false, foo: (1, 2, 3))

La vitesse est considérée comme un sous-type de poids.

Conclusion - Javascript est-il orienté objet?

Comme nous en discutions sur Javascript est orienté objet, nous pouvons donc maintenant conclure que JavaScript est un langage orienté objet. Bien qu'il n'ait pas de classes réelles, il s'agit toujours d'un langage orienté objet car il suit les concepts de base des principes orientés objet. Ainsi, un langage peut être orienté objet s'il prend en charge des objets même sans classes.

Articles recommandés

Ceci a été un guide pour Is Javascript Object Oriented. Ici, nous avons discuté des concepts de base et des caractéristiques de Javascript et orienté objet. Vous pouvez également consulter les articles suivants:

  1. JavaScript vs VBScript
  2. Utilisations de JavaScript
  3. JavaScript vs AngularJS
  4. JavaScript contre Node JS
  5. Guide complet des objets en Java
  6. Objet en Python
  7. Exemples et fonctionnement des génériques en C #