Les exemples de cet article décrivent l'utilisation d'objets de packaging JavaScript. Partagez-le avec tout le monde pour votre référence. L'analyse spécifique est la suivante :
Un objet js est une valeur composite : c'est une propriété ou une collection de valeurs nommées.
Référez-vous au code suivant :
var s = "hello world"; var len = s.length;
Dans cet exemple, s est une chaîne et la chaîne n'est pas un objet, mais pourquoi a-t-elle des attributs ? En fait, tant que les propriétés de la chaîne s sont référencées, js convertira la chaîne en objet en appelant de nouvelles String. L'objet hérite des méthodes de la chaîne et est utilisé pour gérer la référence de la propriété ; une fois la propriété référencée, à la fin, l'objet nouvellement créé sera détruit (cet objet temporaire n'est pas nécessairement créé ou détruit lors de l'implémentation, mais l'ensemble du processus semble être comme ça).
Comme les chaînes, les nombres et les valeurs booléennes ont également leurs propres méthodes : un objet temporaire est créé via le constructeur Boolean() monocœur Number(), et les appels à ces méthodes proviennent cependant tous de cet objet temporaire ; , null et undefined ne wrapper pas les objets : accéder à leurs propriétés provoquera une erreur de type.
Par exemple, le code suivant :
var s0 = "hello world"; s0.len = 100; var t = s.len; //t的值将为undefined
Parce que la ligne 2 crée un objet temporaire et le détruit immédiatement ; la ligne 3 crée un nouvel objet chaîne via la valeur de chaîne d'origine et essaie de lire son attribut len, qui n'existe naturellement pas. Ce code illustre comment se comporter comme un objet lors de la lecture de valeurs de propriété ou de méthodes de chaînes, de nombres et de valeurs booléennes. Mais si vous essayez d'attribuer une valeur à sa propriété, cette opération sera ignorée : la modification n'intervient que sur l'objet temporaire, et l'objet temporaire n'est pas conservé.
Les objets temporaires créés temporairement lors de l'accès aux propriétés de chaînes, de nombres ou de valeurs booléennes sont appelés objets wrapper.
Nous pouvons explicitement créer un objet chaîne et ajouter ses propriétés, et naturellement les propriétés seront conservées :
var str = "hello world"; var objs = new String(str); objs.len = 100; var t = objs.len; //t将被赋值为100
js convertira l'objet enveloppé en une valeur primitive si nécessaire afin que l'objet affiché créé et sa valeur primitive correspondante se comportent souvent, mais pas toujours, de la même manière. L'opérateur == traite la valeur d'origine et son objet encapsulé comme égaux ; mais l'opérateur de congruence === les traite comme inégaux. De plus, l'opérateur typeof peut être utilisé pour voir la différence entre la valeur d'origine et l'objet encapsulé.
J'espère que cet article sera utile à la conception de la programmation JavaScript de chacun.