Maison >interface Web >js tutoriel >Les primitives JavaScript sont-elles vraiment des objets ?
La nature intrigante des objets JavaScript
Dans les profondeurs de la programmation, le monde de JavaScript présente une tournure inattendue : tout n'est pas un objet . Alors que de nombreux textes d'introduction suggèrent que « presque tout » relève de cette classification, un examen plus approfondi révèle une vérité différente.
À la base, un objet encapsule la fonctionnalité à travers des méthodes et des propriétés. Les tableaux, par exemple, s'adaptent à ce moule avec leurs paires clé-valeur inhérentes. Cependant, lorsqu'il s'agit de « chaînes », de « nombres » et de « fonctions », les lignes sont floues.
Ces entités peuvent ressembler à des fonctions, effectuant des transformations en entrée et produisant une sortie sans accès apparent aux propriétés ou méthodes. La notation par points reste visiblement absente dans de tels cas.
L'énigme du Wrapper
En dévoilant le mystère, nous découvrons une distinction subtile : ces primitives, comme on les appelle, n'ont pas la véritable essence des objets. Au lieu de cela, ils sont enveloppés dans des vêtements d'objets, à savoir String, Number et Boolean. Ces wrappers possèdent des méthodes et des propriétés, donnant l'illusion du comportement des objets.
Par exemple, considérons ce code :
var s = "foo"; var sub = s.substring(1, 2); // sub becomes "o"
En coulisses, JavaScript effectue une série d'étapes cachées :
L'illusion des propriétés
Pendant qu'il semble que les primitives peuvent se voir attribuer des propriétés, de telles tentatives s'avèrent vaines, comme le démontre l'exemple suivant :
var s = "foo"; s.bar = "cheese"; alert(s.bar); // undefined
Cela se produit parce que la propriété est définie sur l'objet wrapper éphémère String, qui est rapidement ignoré, ce qui rend la propriété inaccessible.
Fonctions : Objets déguisés
Contrairement aux primitives, les fonctions sont des objets à part entière qui héritent d'Object. Cela signifie qu’ils possèdent toutes les capacités des objets, y compris la capacité d’avoir leurs propres propriétés. En témoigne cet exemple :
function foo() {} foo.bar = "tea"; alert(foo.bar); // tea
Pour conclure
En JavaScript, tout ne revêt pas le manteau d'un objet. Les primitives, masquées par des wrappers d'objets, créent une illusion du comportement des objets. Ce n'est que grâce à une compréhension plus approfondie des subtilités de JavaScript que la véritable nature de ses objets devient apparente.
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!