
рдлреЛрдЯреЛ: рдЬрд┐рдЬреНрдЮрд╛рд╕реБ рд▓рд┐рд▓рд┐рдпрд╛рдирд╛ рд╕рд╛рд╣рдм (рд╕реАрд╕реА рдмрд╛рдп 2.0)
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХ рдмрд╣реБ-рдкреНрд░рддрд┐рдорд╛рди рднрд╛рд╖рд╛ рд╣реИ рдЬреЛ рдСрдмреНрдЬреЗрдХреНрдЯ-рдУрд░рд┐рдПрдВрдЯреЗрдб рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдФрд░ рдбрд╛рдпрдиреЗрдорд┐рдХ рд▓рд┐рдВрдХрд┐рдВрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреА рд╣реИред рдбрд╛рдпрдирд╛рдорд┐рдХ рд▓рд┐рдВрдХрд┐рдВрдЧ рдПрдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЕрд╡рдзрд╛рд░рдгрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рд░рдирдЯрд╛рдЗрдо рдкрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдпреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рд╢рдХреНрддрд┐ рдФрд░ рд▓рдЪреАрд▓реЗрдкрди рдХреБрдЫ рднреНрд░рдо рдХреА рдХреАрдордд рдкрд░ рд╣рд╛рд╕рд┐рд▓ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ this
рд╡реНрдпрд╡рд╣рд╛рд░ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВред
рдЧрддрд┐рд╢реАрд▓ рд▓рд┐рдВрдХрд┐рдВрдЧ
рдбрд╛рдпрдирд╛рдорд┐рдХ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЗ рд╕рд╛рде, рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рд╡рд┐рдзрд┐ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рд░рди рдЯрд╛рдЗрдо рдкрд░ рд╣реЛрддреА рд╣реИ, рди рдХрд┐ рдХрдВрдкрд╛рдЗрд▓ рдЯрд╛рдЗрдо рдкрд░ред рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ this
рдФрд░ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рд╕рд╛рде рдХрд░рддрд╛ рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рд╡рд┐рдзрд┐ рдХреЗ рдЕрдВрджрд░, this
рдХреЙрд▓ рдХреЗ рджреМрд░рд╛рди рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ this
рдХреИрд╕реЗ рд╡рд┐рдзрд┐ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЗрд╕рдХрд╛ рдореВрд▓реНрдп рдЕрд▓рдЧ рд╣реЛрдЧрд╛ред
рдЪрд▓реЛ рдПрдХ рдЦреЗрд▓ рдЦреЗрд▓рддреЗ рд╣реИрдВред рдореИрдВрдиреЗ рдЙрд╕реЗ рдлреЛрди рдХрд┐рдпрд╛ " this
рдпрд╣рд╛рдБ рдХреНрдпрд╛ рд╣реИ?"
const a = { a: 'a' }; const obj = { getThis: () => this, getThis2 () { return this; } }; obj.getThis3 = obj.getThis.bind(obj); obj.getThis4 = obj.getThis2.bind(obj); const answers = [ obj.getThis(), obj.getThis.call(a), obj.getThis2(), obj.getThis2.call(a), obj.getThis3(), obj.getThis3.call(a), obj.getThis4(), obj.getThis4.call(a) ];
рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪреЗрдВ рдХрд┐ answers
рд╕рд░рдгреА рдореЗрдВ рдорд╛рди рдХреНрдпрд╛ answers
рдФрд░ console.log()
рд╕рд╛рде рдЕрдкрдиреЗ рдЙрддреНрддрд░реЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВред рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдпрд╛?
рдЖрдЗрдП рдкрд╣рд▓реЗ рдорд╛рдорд▓реЗ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ рдФрд░ рдХреНрд░рдо рдореЗрдВ рдЬрд╛рд░реА рд░рдЦреЗрдВред obj.getThis()
undefined
рд░рд┐рдЯрд░реНрди рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрдпреЛрдВ? рдПрд░реЛ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХрд╛ рдЕрдкрдирд╛ рдХрднреА рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рд╡реЗ рд╣рдореЗрд╢рд╛ рдЗрд╕реЗ рд▓реЗрдХреНрд╕рд┐рдХрд▓ рд╕реНрдХреЛрдк ( рд▓рдЧрднрдЧ рд▓реЗрдХреНрд╕рд┐рдХрд▓ рдЗрд╕ ) рд╕реЗ рд▓реЗрддреЗ рд╣реИрдВред ES6 рдореЙрдбреНрдпреВрд▓ рдХреА рдЬрдбрд╝ рдХреЗ рд▓рд┐рдП, рд▓реЗрдХреНрд╕рд┐рдХрд▓ рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдПрдХ undefined
рдореВрд▓реНрдп this
ред obj.getThis.call(a)
рднреА рдЙрд╕реА рдХрд╛рд░рдг рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдПрд░реЛ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЗ рд▓рд┐рдП, this
.call()
рдпрд╛ .bind()
рд╕рд╛рде рднреА рдУрд╡рд░рд░рд╛рдЗрдб рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред this
рд╣рдореЗрд╢рд╛ рд╢рд╛рдмреНрджрд┐рдХ рдбреЛрдореЗрди рд╕реЗ рд▓рд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
obj.getThis2()
рдореЗрдердб рдХреЙрд▓ рдХреЗ рджреМрд░рд╛рди рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рд╣реЛ рдЬрд╛рддреА рд╣реИред рдпрджрд┐ рдкрд╣рд▓реЗ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдмрд╛рдзреНрдпрдХрд╛рд░реА рдирд╣реАрдВ рдерд╛, рддреЛ рдпрд╣ рдЗрд╕рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рд╣реЛ this
(рдЪреВрдВрдХрд┐ рдпрд╣ рдПрдХ рддреАрд░ рдлрд╝рдВрдХреНрд╢рди рдирд╣реАрдВ рд╣реИ)ред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, this
рдПрдХ рдУрдмреНрдЬреЗрдХреНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИ рдЬреЛ рдЙрд╕ рд╕рдордп рд╡рд┐рдзрд┐ рд╕реЗ рдмрдВрдзрд╛ рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╡рд┐рдзрд┐ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ .
рдпрд╛ [squareBracket]
рд╕рдВрдкрддреНрддрд┐ рдПрдХреНрд╕реЗрд╕ рд╕рд┐рдВрдЯреИрдХреНрд╕ред ( рдиреЛрдЯ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдмрдВрдзрди )
obj.getThis2.call(a)
рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИред call()
рд╡рд┐рдзрд┐ рджрд┐рдП рдЧрдП рдЗрд╕ рдорд╛рди рдФрд░ рд╡реИрдХрд▓реНрдкрд┐рдХ рддрд░реНрдХреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рддреА рд╣реИред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рд╡рд┐рдзрд┐ this
рдмрдВрдзрди рдХреЛ obj.getThis2.call(a)
.call()
рдкреИрд░рд╛рдореАрдЯрд░ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП obj.getThis2.call(a)
рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ a
рд╡рд╛рдкрд╕ рдХрд░рддрд╛ a
ред ( рдиреЛрдЯ рд╕реНрдкрд╖реНрдЯ рдмрдВрдзрди )
obj.getThis3 = obj.getThis.bind(obj);
рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ obj.getThis3 = obj.getThis.bind(obj);
рд╣рдо this
рдмрд╛рдЙрдВрдб рдлрдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдПрдХ рдРрд░реЛ рдлрдВрдХреНрд╢рди рдкрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ рд╣рдо рдкрд╣рд▓реЗ рд╣реА рд╕рдордЭ рдЪреБрдХреЗ рд╣реИрдВ, рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдЗрд╕рд▓рд┐рдП рд╣рдо рдХреНрд░рдорд╢рдГ obj.getThis3()
рдФрд░ obj.getThis3.call(a)
рд▓рд┐рдП undefined
рд╣реЛ obj.getThis3()
рд╣реИрдВред
рдирд┐рдпрдорд┐рдд рддрд░реАрдХреЛрдВ рдХреЗ рд▓рд┐рдП, рдЖрдк рдмрд╛рдзреНрдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП obj.getThis4()
рд░рд┐рдЯрд░реНрди obj
, рдЬреИрд╕рд╛ рдХрд┐ рдЕрдкреЗрдХреНрд╖рд┐рдд рдерд╛ред рд╡рд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдкрдиреЗ рдмрдВрдзрди рдпрд╣рд╛рдБ obj.getThis4 = obj.getThis2.bind(obj);
, рдФрд░ obj.getThis4.call(a)
рдкрд╣рд▓реА рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддрд╛ рд╣реИ рдФрд░ a
рдмрдЬрд╛рдп obj
рджреЗрддрд╛ a
ред
рдореБрдбрд╝реА рд╣реБрдИ рдЧреЗрдВрдж
рд╣рдо рдЙрд╕реА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдЗрд╕ рдмрд╛рд░ рд╣рдо рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ class
рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ (рдЗрд╕ рд▓реЗрдЦрди рдХреЗ рд╕рдордп рдЪрд░рдг 3 рдирд╡рд╛рдЪрд╛рд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдХреНрд░реЛрдо рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ рдФрд░ @babel/plugin-offer-class-properties
):
class Obj { getThis = () => this getThis2 () { return this; } } const obj2 = new Obj(); obj2.getThis3 = obj2.getThis.bind(obj2); obj2.getThis4 = obj2.getThis2.bind(obj2); const answers2 = [ obj2.getThis(), obj2.getThis.call(a), obj2.getThis2(), obj2.getThis2.call(a), obj2.getThis3(), obj2.getThis3.call(a), obj2.getThis4(), obj2.getThis4.call(a) ];
рдЬрд╛рд░реА рд░рдЦрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЬрд╡рд╛рдм рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪреЗрдВред
рдХреНрдпрд╛ рдЖрдк рддреИрдпрд╛рд░ рд╣реИрдВ?
obj2.getThis2.call(a)
рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рднреА рдХреЙрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдПрдХ рдЖрд╡реГрддреНрддрд┐ рд▓реМрдЯрд╛рддреЗ рд╣реИрдВред obj2.getThis2.call(a)
рд░рд┐рдЯрд░реНрди a
ред рдПрд░реЛ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдЕрднреА рднреА this
рдЕрдкрдиреЗ рд╢рд╛рдмреНрджрд┐рдХ рд╡рд╛рддрд╛рд╡рд░рдг рд╕реЗ рдкреНрд░рд╛рдкреНрдд this
рд╣реИрдВред рд╡рд░реНрдЧреАрдп рдЧреБрдгреЛрдВ рдХреЗ рд▓рд┐рдП this
рдХреИрд╕реЗ рд╢рд╛рдмреНрджрд┐рдХ рд╡рд╛рддрд╛рд╡рд░рдг рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рдореЗрдВ рдЕрдВрддрд░ рд╣реИред рдЕрдВрджрд░, рд╡рд░реНрдЧ рдХреЗ рдЧреБрдгреЛрдВ рдХреА рд╢реБрд░реВрдЖрдд рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╣реЛрддреА рд╣реИ:
class Obj { constructor() { this.getThis = () => this; } ...
рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рддреАрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рдпрд╣ рдПрдХ рд╡рд░реНрдЧ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ new
рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ ( new
рдХреЛ рдЫреЛрдбрд╝рдирд╛ рдПрдХ рддреНрд░реБрдЯрд┐ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реЛрдЧрд╛)ред new
рдХреАрд╡рд░реНрдб рдЬреЛ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд╡рд╣ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдПрдХ рдирдпрд╛ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рдмрд╛рдБрдз рджреЗрддрд╛ рд╣реИред рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░, рдЕрдиреНрдп рд╡реНрдпрд╡рд╣рд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдЬреЛ рд╣рдордиреЗ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рдмрд╛рдХреА рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдирд┐рд╖реНрдХрд░реНрд╖
рдХреНрдпрд╛ рдЖрдк рд╕рдлрд▓ рд╣реБрдП? this
рдХреИрд╕реЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИ рдХреА рдПрдХ рдЕрдЪреНрдЫреА рд╕рдордЭ рдЖрдкрдХреЛ рдЬрдЯрд┐рд▓ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдбреАрдмрдЧ рдХрд░рдиреЗ рдореЗрдВ рдмрд╣реБрдд рд╕рдордп рдмрдЪрд╛рдПрдЧреАред рдпрджрд┐ рдЖрдкрдиреЗ рдЙрддреНрддрд░реЛрдВ рдореЗрдВ рдЧрд▓рддреА рдХреА рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдереЛрдбрд╝рд╛ рдЕрднреНрдпрд╛рд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдЕрднреНрдпрд╛рд╕ рдХрд░реЗрдВ, рдлрд┐рд░ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдВ рдФрд░ рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВ рдЬрдм рддрдХ рдЖрдк рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХрд┐рд╕реА рдФрд░ рдХреЛ рд╕рдордЭрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╡рд┐рдзрд┐рдпрд╛рдВ рд╡рд╛рдкрд╕ рдХреНрдпреЛрдВ рдЖрддреА рд╣реИрдВред
рдпрджрд┐ рдпрд╣ рдЖрдкрдХреА рдЕрдкреЗрдХреНрд╖рд╛ рд╕реЗ рдЕрдзрд┐рдХ рдХрдард┐рди рдерд╛, рддреЛ рдЖрдк рдЕрдХреЗрд▓реЗ рдирд╣реАрдВ рд╣реИрдВред рдореИрдВрдиреЗ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕реЗ рдкреВрдЫрд╛ рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдм рддрдХ рдЙрдирдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рдиреЗ рд╣реА рдЗрд╕ рдХрд╛рдо рдХреЛ рдЕрдВрдЬрд╛рдо рджрд┐рдпрд╛ рд╣реИред
рдбрд╛рдпрдирд╛рдорд┐рдХ рддрд░реАрдХреЛрдВ рдХреА рдЦреЛрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛ рдЖрдк рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ .apply()
.bind()
.apply()
.bind()
рдпрд╛ .apply()
рд╡рд░реНрдЧ рд╡рд┐рдзрд┐рдпреЛрдВ рдФрд░ рддреАрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЗ рд╕рд╛рде рдФрд░ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реЛ рдЧрдпрд╛ рд╣реИред рд╢рд╛рдпрдж рдЖрдкрдХреЛ рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рдЗрд╕ рдкрд░ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рддреАрд░ рдлрд╝рдВрдХреНрд╢рдВрд╕ рд╣рдореЗрд╢рд╛ рд╢рд╛рдмреНрджрд┐рдХ рджрд╛рдпрд░реЗ рд╕реЗ рд▓реЗрддреЗ рд╣реИрдВ, рдФрд░ this
class
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣реБрдб рдХреЗ рддрд╣рдд рд╡рд░реНрдЧ рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛ рджреНрд╡рд╛рд░рд╛ рд╢рд╛рдмреНрджрд┐рдХ рд░реВрдк рд╕реЗ рд╕реАрдорд┐рдд рд╣реИред рдпрджрд┐ рдЖрдкрдХреЛ рдХрднреА this
рд╕рдВрджреЗрд╣ рд╣реИ, рддреЛ рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдЖрдк рдЗрд╕рдХреЗ рдореВрд▓реНрдп рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдмрдЧрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдХрдИ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕реБрд▓рдЭрд╛рдиреЗ рдореЗрдВ рдЖрдк рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореЗрд░реЗ рдЕрдиреБрднрд╡ рдореЗрдВ, рд▓рдЧрднрдЧ рд╕рднреА рдЪреАрдЬрд╝реЛрдВ рдХреЛ рд╢реБрджреНрдз рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдкреБрдирд░реНрдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рд╕реНрдкрд╖реНрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рддрд░реНрдХреЛрдВ рдХреЛ рд▓реЗрддреЗ рд╣реИрдВ ( this
рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЪрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)ред рд╢реБрджреНрдз рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд░реНрдгрд┐рдд рддрд░реНрдХ рдирд┐рдпрддрд╛рддреНрдордХ рд╣реИ, рдЬреЛ рдЗрд╕реЗ рдЕрдзрд┐рдХ рдкрд░реАрдХреНрд╖рдг рдпреЛрдЧреНрдп рдмрдирд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде, рдХреЛрдИ рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯ рдирд╣реАрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП, this
рд╣реЗрд░рдлреЗрд░ рдХреЗ рдХреНрд╖рдгреЛрдВ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЖрдкрдХреЛ рдХреБрдЫ рднреА рддреЛрдбрд╝рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИред рд╣рд░ рдмрд╛рд░ рдЬрдм this
рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХреЗ рдореВрд▓реНрдп рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХреБрдЫ рдЯреВрдЯ рд╕рдХрддрд╛ рд╣реИред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХрднреА-рдХрднреА this
рдЙрдкрдпреЛрдЧреА рд╣реЛрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдмреАрдЪ рддрд░реАрдХреЛрдВ рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрдВ рднреА, this
рдЙрдкрдпреЛрдЧ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЕрдиреНрдп рддрд░реАрдХреЛрдВ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдореМрдЬреВрджрд╛ рдмреАрдЬреЛрдВ рдХреЗ рдКрдкрд░ рдирдП рдмреАрдЬрдЧрдгрд┐рдд рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдмреАрдЬреАрдп рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рддреЛ, рдпреВрдирд┐рд╡рд░реНрд╕рд▓ .flatMap()
this.map()
рдФрд░ this.constructor.of()
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
Wksmirnowa рдФрд░ VIBaH_dev рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж