From 39f2114f9797eb51994966c6bb8ff1814c9a4da8 Mon Sep 17 00:00:00 2001 From: Florian Merz Date: Thu, 11 Feb 2021 12:36:08 +0100 Subject: unslug fr: move --- .../reference/statements/with/index.html | 135 +++++++++++++++++++++ 1 file changed, 135 insertions(+) create mode 100644 files/fr/web/javascript/reference/statements/with/index.html (limited to 'files/fr/web/javascript/reference/statements/with') diff --git a/files/fr/web/javascript/reference/statements/with/index.html b/files/fr/web/javascript/reference/statements/with/index.html new file mode 100644 index 0000000000..8eec25496e --- /dev/null +++ b/files/fr/web/javascript/reference/statements/with/index.html @@ -0,0 +1,135 @@ +--- +title: with +slug: Web/JavaScript/Reference/Instructions/with +tags: + - Déprécié + - Instruction + - JavaScript + - Reference +translation_of: Web/JavaScript/Reference/Statements/with +--- +
{{jsSidebar("Statements")}}
+ +
Il n'est pas recommandé d'utiliser l'instruction with. En effet, elle est parfois source de problèmes de compatibilité ou de bogues. Se référer au paragraphe « Inconvénient : l'ambiguïté » de la section « Description » pour plus de détails.
+ +

L'instruction with permet d'étendre la portée chaînée d'une instruction.

+ +

Syntaxe

+ +
with (expression) {
+  instruction
+}
+
+ +
+
expression
+
L'expression fournie est ajoutée à la portée chaînée utilisée lors de l'évaluation de l'instruction. Les parenthèses sont obligatoires.
+
instruction
+
N'importe quelle instruction. Afin d'utiliser plusieurs instructions, on peut utiliser un bloc d'instructions ({ ... }) pour les regrouper.
+
+ +

Description

+ +

Dès qu'un nom non-qualifié est utilisé, JavaScript cherche dans la chaîne des portées associée à l'exécution une fonction ou un script qui contiendrait ce nom. L'instruction with ajoute l'objet donné à la tête de la chaîne des portées lors de l'évaluation des instructions qu'elle contient. Si un nom non-qualifié est utilisé parmi ces instructions correspond à une propriété de la chaîne des portées, le nom sera alors lié à la propriété et à l'objet contenant cette propriété, sinon une erreur ReferenceError est renvoyée.

+ +
L'utilisation de l'instruction with n'est pas recommandée et est interdite dans le mode strict d'ECMAScript 5. L'alternative recommandée est d'assigner l'objet utilisant les propriétés désirées à une variable temporaire.
+ +

Avantages et inconvénients : les performances

+ + + +

Inconvénient : l'ambiguïté

+ + + +

Exemples

+ +

Utiliser with

+ +

L'instruction with suivante indique que l'objet {{jsxref("Math")}} est l'objet par défaut. Les instructions qui suivent font référence à la propriété {{jsxref("Math.PI")}} et aux méthodes {{jsxref("Math.cos()")}} et {{jsxref("Math.sin()")}}, sans objet spécifié. JavaScript utilise donc l'objet Math pour ces références.

+ +
var a, x, y;
+var r = 10;
+
+with (Math) {
+  a = PI * r * r;
+  x = r * cos(PI);
+  y = r * sin(PI / 2);
+}
+ +

Spécifications

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpécificationÉtatCommentaires
{{SpecName('ESDraft', '#sec-with-statement', 'with statement')}}{{Spec2('ESDraft')}} 
{{SpecName('ES6', '#sec-with-statement', 'Instruction with')}}{{Spec2('ES6')}} 
{{SpecName('ES5.1', '#sec-12.10', 'Instruction with')}}{{Spec2('ES5.1')}}Désormais interdit en mode strict.
{{SpecName('ES3', '#sec-12.10', 'Instruction with')}}{{Spec2('ES3')}} 
{{SpecName('ES1', '#sec-12.10', 'Instruction with')}}{{Spec2('ES1')}}Définition initiale.
+ +

Compatibilité des navigateurs

+ + + +

{{Compat("javascript.statements.with")}}

+ +

Voir aussi

+ + -- cgit v1.2.3-54-g00ecf