Maison  >  Article  >  interface Web  >  Les primitives Javascript sont-elles réellement des objets ?

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

Linda Hamilton
Linda Hamiltonoriginal
2024-11-17 06:56:03993parcourir

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"

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

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

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!

Déclaration:
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