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!