Maison > interface Web > js tutoriel > le corps du texte

Les primitives Javascript sont-elles réellement des objets ?

Linda Hamilton
Libérer: 2024-11-17 06:56:03
original
994 Les gens l'ont consulté

Are Javascript Primitives Actually Objects?

Primitives Javascript vs objets : clarifier la notion

Malgré la perception commune selon laquelle « presque tout en Javascript est un objet », tous ne sont pas les entités du langage adhèrent à cette définition. Cette distinction entre primitives et objets mérite une clarification.

Primitives

Contrairement aux objets, les primitives sont des valeurs immuables qui existent dans leur forme fondamentale. Ils manquent de méthodes et de propriétés et incluent des types de données tels que :

  • Strings
  • Numbers
  • Booleans

Object Wrappers

Les primitives ont des wrappers d'objet correspondants (String, Number, Booléen) qui proposent des méthodes et des propriétés. Cependant, les primitifs eux-mêmes ne sont pas des objets. Pour interagir avec les propriétés d'une primitive, Javascript crée implicitement un objet wrapper pour l'opération.

Exemple avec des chaînes

Considérez l'extrait de code ci-dessous :

var s = "foo";
var sub = s.substring(1, 2); // sub is now the string "o"
Copier après la connexion

Javascript effectue en interne les opérations suivantes étapes :

  1. Crée un objet wrapper String à partir de s.
  2. Appelle la méthode substring() sur l'objet String.
  3. Supprime l'objet String.
  4. Renvoie la chaîne résultante.

Tentative d'attribution Propriétés aux primitives

L'attribution de propriétés aux primitives n'est effectivement pas possible car de telles propriétés seront associées à l'objet wrapper temporaire et non à la primitive elle-même :

var s = "foo";
s.bar = "cheese";
alert(s.bar); // undefined
Copier après la connexion

Les fonctions en tant qu'objets

Les fonctions, quant à elles, sont de véritables objets capables d'hériter de la classe Object. Ils possèdent des propriétés et peuvent être manipulés comme les autres objets :

function foo() {}
foo.bar = "tea";
alert(foo.bar); // tea
Copier après la connexion

En conclusion, même s'il peut sembler que les primitives ont un comportement semblable à celui d'un objet, elles sont distinctes des vrais objets en Javascript. Les wrappers d'objets permettent des interactions avec des valeurs primitives, mais les primitives restent immuables. Les fonctions, cependant, sont des objets полноценные объекты, des objets à part entière capables de toutes les capacités des objets. Cette compréhension clarifie la relation entre les primitives et les objets dans le langage Javascript.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal