рдХрдерди рдХреЗ рд╕рд╛рде рдФрд░ рдЖрдкрдХреЛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП

рдпрд╣ рдЖрд▓реЗрдЦ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИред

рд╕рд┐рдВрдЯреЗрдХреНрд╕ рдХреЗ рд╕рд╛рде


with (object) statement 

рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рджрд╛рдпрд░рд╛ рдмрдирд╛рддрд╛ рд╣реИ, рдФрд░ рдХрдерди рдХреЗ рд╕реНрдерд╛рдиреАрдп рдЪрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЧреБрдгреЛрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг (рдХреЛрд╖реНрдардХ рдПрдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдХреА рдЬрд╛рддреА рд╣реИ):
 with({ first: "John" }) { console.log("Hello " + first); } // Hello John 

рдПрдХ рд╕рдорд╛рди рд╡рд╕реНрддреБ рд╣реИ рдЬрд┐рд╕рдХреЗ рдЧреБрдг рдПрдХ рд╕рд╛рде рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рд╣реИрдВ - рдЗрд╕ рд╡рд╕реНрддреБ рдХреЛ рд╡реИрд╢реНрд╡рд┐рдХ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ (рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рдпрд╣ рд╡рд┐рдВрдбреЛ рд╣реИ)ред рд▓реЗрдХрд┐рди рд╡реИрд╢реНрд╡рд┐рдХ рд╡рд╕реНрддреБ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЬреЛ рдЪрд░ рдХрдерди (рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдмреНрд▓реЙрдХ) рдХреЗ рд╕рд╛рде рдШреЛрд╖рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╛рд╣рд░реА рджрд╛рдпрд░реЗ рдореЗрдВ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдореМрдЬреВрдж рд░рд╣рддрд╛ рд╣реИред
 with({}) { var x = "abc"; } console.log(x) // 'abc' 

рдХрдерди рдХреЗ рд╕рд╛рде рдкрджрд╛рд╡рдирдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ


рдХрдерди рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░рдирд╛ рдЙрдЪрд┐рдд рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рдЦреНрдд рдореЛрдб рдореЗрдВ рдирд┐рд╖рд┐рджреНрдз рд╣реИ:
 function foo() { "use strict"; with({}); } // SyntaxError: strict mode code may not contain 'with' statements 

рдХреИрд╕реЗ рдмрджрд▓реЗрдВ:
 with(foo.bar.baz) { console.log("Hello "+first+" "+last); } 

рдЗрд╕рдХреЗ рд╕рд╛рде рдЪрд░ рдХреЛ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:
 var b = foo.bar.baz; console.log("Hello "+b.first+" "+b.last); 

рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рджрд╛рдпрд░реЗ рдореЗрдВ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдЪрд░ рдШреЛрд╖рд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ IIFE рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ :
 (function() { var b = foo.bar.baz; console.log("Hello "+b.first+" "+b.last); }()); 

рдЖрдк рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ IIFE рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рднреА рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
 (function(b) { console.log("Hello "+b.first+" "+b.last); }(foo.bar.baz)); 

рддреЛ рдХреНрдпреЛрдВ рдмреБрд░рд╛ рд╣реИ


рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдкрджрд╛рд╡рдирдд рдХреНрдпреЛрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЖрдЗрдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдХреИрд╕реЗ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рддрд░реНрдХ рдЕрдкрдиреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдмрджрд▓рддрд╛ рд╣реИред рдпрд╣рд╛рдБ рд╕рдорд╛рд░реЛрд╣ рд╣реИ:
 function foo(arg) { with(arg) { console.log("arg: " + arg) } } 

рд╡рд┐рднрд┐рдиреНрди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдлрд╝рдВрдХреНрд╢рди рдЪрд▓рд╛рдПрдБ:
 foo("Hello"); // arg: Hello -  arg foo({}); // arg: [object Object] -  arg foo({ arg: "Hello" }); // arg: Hello -  arg.arg! 

рд╡рдВрдЪрд┐рдд рд╣реЛрдиреЗ рдХреЗ рджреЛ рдХрд╛рд░рдг рд╣реИрдВ:
рдкреНрд░рджрд░реНрд╢рди : рдХрдерди рдХреЗ рд╕рд╛рде рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рдЬреНрдЮрд╛рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ arg рдХрд╣рд╛рдБ рд╕рдВрджрд░реНрднрд┐рдд рд╣реЛрдЧрд╛: рдЕрд╕рд▓реА рдЪрд░ рдХреЗ рд╕рд╛рде рдпрд╛ рдЪрд░ рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ рдЕрдВрджрд░ред рдпрд╣ рд╣рд░ рдХреЙрд▓ рдХреЗ рд╕рд╛рде рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИред

рд╕реБрд░рдХреНрд╖рд╛ : рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдЪрд░ рдХрд╣рд╛рдБ рдЕрдкрдиреЗ рдкрд░рд┐рд╡реЗрд╢ (рдЗрд╕рдХреЗ рд╢рд╛рдмреНрджрд┐рдХ рд╡рд╛рддрд╛рд╡рд░рдг) рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИред рдмреНрд░реЗрдВрдбрди рдИрдЪ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдпрд╣ рдЗрд╕ рд╡рдЬрд╣ рд╕реЗ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рд╕рд╛рде рдЕрдкреНрд░рдЪрд▓рд┐рдд рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рди рдХрд┐ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдХрд╛рд░рдгред


Source: https://habr.com/ru/post/In120364/


All Articles