Maison  >  Article  >  interface Web  >  Introduction à l'encapsulation d'objets primitifs dans les compétences JavaScript_javascript

Introduction à l'encapsulation d'objets primitifs dans les compétences JavaScript_javascript

WBOY
WBOYoriginal
2016-05-16 16:23:001168parcourir

En JavaScript, les chaînes, les nombres et les booléens sont tous des types primitifs, c'est-à-dire que les chaînes, les nombres et les valeurs booléennes n'existent pas sous forme d'objets. Cependant, étant donné que ces trois types primitifs de valeurs doivent être exploités, JavaScript encapsulera automatiquement ces trois types de valeurs et en fera des objets avec des propriétés et des méthodes. En prenant la chaîne comme exemple, ce processus d'encapsulation est le suivant :

1. Lorsque JavaScript rencontre un accès à un attribut ou une invocation de méthode d'une valeur de chaîne, il appellera une nouvelle chaîne (valeur de chaîne) pour encapsuler automatiquement la chaîne dans un objet String.
2. JavaScript accédera aux propriétés ou méthodes de cet objet nouvellement créé et renverra les résultats correspondants.
3. Une fois l'accès à l'attribut ou l'appel de méthode terminé, JavaScript détruira immédiatement l'objet nouvellement créé.

En prenant le code suivant comme exemple, cela n'a aucun sens d'écrire des propriétés dans un objet String créé automatiquement par JavaScript, car l'objet créé n'existe plus une fois l'instruction d'écriture terminée :


Copier le code Le code est le suivant :

var s = "test";
s.longueur = 9;
console.log(s.length);//toujours 4
s.newVariable = 9;
console.log(s.newVariable);//undéfini
console.log(s === "test");//true

Il convient de noter que la variable s dans le code ci-dessus représente toujours une chaîne primitive. L'objet chaîne créé automatiquement par JavaScript existe dans le processus d'exécution de l'opération s.length ou s.newVariable. Cela peut être vérifié à partir de la dernière ligne de code de l'expérience ci-dessus.

En plus d'encapsuler automatiquement les valeurs primitives, les développeurs peuvent également choisir d'effectuer le processus correspondant manuellement. Contrairement à l'encapsulation automatique, l'objet obtenu par encapsulation manuelle ne sera pas détruit immédiatement, donc l'opération d'écriture de propriété effectuée pour l'objet encapsulé manuellement est significative :


Copier le code Le code est le suivant :

var t = new String("test");
t.longueur = 9;
console.log(t.length);//toujours 4, car l'attribut length est en lecture seule
t.newVariable = 9;
console.log(t.newVariable);//9

console.log(t == "test");//true
console.log(t === "test");//false

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