Maison > Article > interface Web > Les primitives Javascript sont-elles réellement des objets ?
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 :
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 :
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!