рдпрд╣ рдЖрд▓реЗрдЦ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИред
рд╕рд┐рдВрдЯреЗрдХреНрд╕ рдХреЗ рд╕рд╛рде
with (object) statement
рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рджрд╛рдпрд░рд╛ рдмрдирд╛рддрд╛ рд╣реИ, рдФрд░ рдХрдерди рдХреЗ рд╕реНрдерд╛рдиреАрдп рдЪрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЧреБрдгреЛрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг (рдХреЛрд╖реНрдардХ рдПрдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдХреА рдЬрд╛рддреА рд╣реИ):
with({ first: "John" }) { console.log("Hello " + first); }
рдПрдХ рд╕рдорд╛рди рд╡рд╕реНрддреБ рд╣реИ рдЬрд┐рд╕рдХреЗ рдЧреБрдг рдПрдХ рд╕рд╛рде рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рд╣реИрдВ - рдЗрд╕ рд╡рд╕реНрддреБ рдХреЛ рд╡реИрд╢реНрд╡рд┐рдХ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ (рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рдпрд╣ рд╡рд┐рдВрдбреЛ рд╣реИ)ред рд▓реЗрдХрд┐рди рд╡реИрд╢реНрд╡рд┐рдХ рд╡рд╕реНрддреБ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЬреЛ рдЪрд░ рдХрдерди (рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдмреНрд▓реЙрдХ) рдХреЗ рд╕рд╛рде рдШреЛрд╖рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╛рд╣рд░реА рджрд╛рдпрд░реЗ рдореЗрдВ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдореМрдЬреВрдж рд░рд╣рддрд╛ рд╣реИред
with({}) { var x = "abc"; } console.log(x)
рдХрдерди рдХреЗ рд╕рд╛рде рдкрджрд╛рд╡рдирдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдХрдерди рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░рдирд╛ рдЙрдЪрд┐рдд рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ
рд╕рдЦреНрдд рдореЛрдб рдореЗрдВ рдирд┐рд╖рд┐рджреНрдз рд╣реИ:
function foo() { "use strict"; with({}); }
рдХреИрд╕реЗ рдмрджрд▓реЗрдВ:
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 рдХрд╣рд╛рдБ рд╕рдВрджрд░реНрднрд┐рдд рд╣реЛрдЧрд╛: рдЕрд╕рд▓реА рдЪрд░ рдХреЗ рд╕рд╛рде рдпрд╛ рдЪрд░ рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ рдЕрдВрджрд░ред рдпрд╣ рд╣рд░ рдХреЙрд▓ рдХреЗ рд╕рд╛рде рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИред
рд╕реБрд░рдХреНрд╖рд╛ : рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдЪрд░ рдХрд╣рд╛рдБ рдЕрдкрдиреЗ рдкрд░рд┐рд╡реЗрд╢ (рдЗрд╕рдХреЗ рд╢рд╛рдмреНрджрд┐рдХ рд╡рд╛рддрд╛рд╡рд░рдг) рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИред рдмреНрд░реЗрдВрдбрди рдИрдЪ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдпрд╣ рдЗрд╕ рд╡рдЬрд╣ рд╕реЗ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рд╕рд╛рде рдЕрдкреНрд░рдЪрд▓рд┐рдд рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рди рдХрд┐ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдХрд╛рд░рдгред