Maison >interface Web >js tutoriel >Compréhension approfondie des classes wrapper js

Compréhension approfondie des classes wrapper js

零到壹度
零到壹度original
2018-04-12 11:21:292740parcourir

Le contenu de cet article est de partager avec vous une compréhension approfondie de la classe d'emballage js. Elle a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer

. Lisons-le avant de parler de la classe packaging. Quelle est la réponse à l'exemple suivant

var str = 'hello';
str.name = 'world';
console.log(str.name);

?

N'est-ce pas évident ? La str ci-dessus a ajouté un attribut nommé name et la valeur est world La sortie doit être world !

Je pense que lorsque vous voyez ce code, c'est la première chose qui vous vient à l'esprit !

Félicitations, vous avez mal répondu ! La valeur n'est pas définie !

Nous savons qu'en js, à l'exception des valeurs originales, tout le reste est un objet, et les objets peuvent avoir leurs propres propriétés et méthodes. (La méthode est que lorsque l'attribut est une fonction, nous l'appelons une méthode)

Alors, la valeur d'origine a-t-elle ses propres attributs

var str = 'hello';
console.log(str.length) // 6

Nous pouvons appeler la méthode de longueur de chaîne Tout comme ? un tableau, son numéro est imprimé.

Puisque les chaînes ne sont pas des objets, pourquoi ont-elles leurs propres méthodes ?

En effet, tant que nous utilisons l'attribut str, js appellera new String(str) pour envelopper str dans un objet. Cet objet hérite des méthodes ci-dessus String.


Ce sont toutes des méthodes String.

Mais que se passe-t-il si String n’a pas l’attribut souhaité ?

Ensuite, js créera un attribut sur String, mais, après création, il sera détruit immédiatement.

Regardons à nouveau cet exemple

var str = 'hello';
str.name = 'world'; 
/*
上面这一步str给他自己设置一个名为name,值为world的属性,于是js就new String(str).name = 'world';
创建之后,销毁
*/
console.log(str.name)
/*
这一步 js又new String(str).name 但是没有值,
所以值为undefined,
*/

De même, number et booléen est aussi

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