Maison > interface Web > js tutoriel > Explication détaillée des fonctions et des effets secondaires de l'instruction with en JavaScript

Explication détaillée des fonctions et des effets secondaires de l'instruction with en JavaScript

伊谢尔伦
Libérer: 2017-07-25 14:05:51
original
1554 Les gens l'ont consulté

Le but de la définition de l'instruction with est principalement de simplifier le travail d'écriture du même objet plusieurs fois

L'instruction with ajoute l'objet à la tête de la chaîne de portée, puis exécute l'instruction, et enfin restaure la chaîne de portées à son état d'origine

with(object){
  statement;
}
Copier après la connexion

Fonction

Habituellement utilisée lorsque l'objet le niveau d'imbrication est très profond avec une instruction pour simplifier l'écriture de code. Essentiellement, une nouvelle portée lexicale

est créée en traitant la référence d'un objet comme une portée et les propriétés de l'objet comme des identifiants dans la portée. En JavaScript côté client, vous pouvez utiliser des expressions telles que. ce qui suit pour accéder aux éléments d'un formulaire HTML

document.forms[0].address.value
Copier après la connexion

Si cette expression apparaît plusieurs fois dans le code, vous pouvez utiliser l'instruction with pour L'objet formulaire est ajouté au niveau supérieur de la chaîne de portée

with(document.forms[0]){
name.value = '';
address.value = '';
emai.value = '';
}
Copier après la connexion

Cette méthode réduit beaucoup de saisie et il n'est pas nécessaire d'ajouter le préfixe document.forms[0] à chaque nom d'attribut. Cet objet est temporairement monté sur la chaîne de portée. Lorsque JavaScript doit analyser un identifiant tel que l'adresse, il recherchera automatiquement

dans cet objet [Note] L'instruction with fournit un moyen de lire A. raccourci pour les propriétés d'un objet, mais il ne peut pas créer les propriétés d'un objet

Si l'objet o a un attribut x, alors le code suivant attribue la valeur de 1 à cet attribut

var o = {x:0};
with(o) x = 1;
console.log(o.x);//1
Copier après la connexion

Si l'attribut x n'est pas défini dans o, le code suivant est exactement le même que le code x=1 sans utiliser l'instruction with. En effet, une requête LHS est effectuée sur la variable. L'optimisation rendra également difficile le débogage du code, et elle fonctionnera plus lentement que le code sans utiliser l'instruction with

var o = {};
with(o) x = 1;
console.log(o.x);//undefined
console.log(x);//1
Copier après la connexion

De plus, si l'instruction with est incorrect, cela peut provoquer une fuite variable. Pollution de la portée globale

Mode strict

En mode strict, il est interdit d'utiliser l'instruction with

var x = 1;
var o = {};
with(o){
x = 2;
}
console.log(x);//2
console.log(o.x);//undefined
Copier après la connexion

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!

Étiquettes associées:
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal