Maison > interface Web > js tutoriel > Les fonctions, les chaînes et les nombres se comportent-ils réellement comme des objets en JavaScript ?

Les fonctions, les chaînes et les nombres se comportent-ils réellement comme des objets en JavaScript ?

Susan Sarandon
Libérer: 2024-11-12 04:23:02
original
450 Les gens l'ont consulté

Do Functions, Strings, and Numbers Actually Behave Like Objects in JavaScript?

Les fonctions, chaînes et nombres sont-ils des objets en JavaScript ?

La réputation de JavaScript pour déclarer presque tout comme un objet peut être déroutante, en particulier pour débutants. S'il est vrai que les objets, avec leurs méthodes et leurs propriétés, jouent un rôle important, les primitives comme les chaînes, les nombres et les fonctions se comportent quelque peu différemment.

Valeurs primitives par rapport aux objets

En JavaScript, les valeurs primitives sont immuables et ne sont pas accessibles via la notation par points. Cependant, JavaScript fournit des objets wrapper (String, Number et Boolean) qui dotent les primitives de méthodes et de propriétés de type objet.

Objets Wrapper

Les objets Wrapper sont créés derrière les scènes lors de l'accès aux propriétés des primitives. Par exemple, dans le code :

var s = "foo";
var sub = s.substring(1, 2);
Copier après la connexion

JavaScript crée silencieusement un objet String, appelle la méthode substring(), puis supprime l'objet. La sous-variable contient désormais la chaîne primitive "o".

Bien qu'il puisse sembler que vous puissiez attribuer des propriétés aux primitives, ces affectations sont en réalité effectuées sur les objets wrapper qui sont immédiatement supprimés. Par conséquent, la récupération de telles propriétés donne un résultat indéfini, comme le démontre l'exemple suivant :

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

Fonctions en tant qu'objets

Contrairement aux primitives, les fonctions sont des objets à part entière qui héritent à partir de l'objet. Elles peuvent avoir des propriétés, comme le montre ce code :

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

En résumé, les primitives n'ont pas intrinsèquement de caractéristiques d'objet en JavaScript. Cependant, les objets wrapper fournissent une façade de comportement semblable à celui d'un objet, tandis que les fonctions sont de véritables objets qui peuvent interagir avec des propriétés et des méthodes. Cette distinction est essentielle pour comprendre le système de types de JavaScript et prendre des décisions de codage éclairées.

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