Underscore: рдмрд╛рдмреЗрд▓ рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде

рдХреЛ рдирд┐рд░реНрдорд┐рдд 5 рдЬрдире░ 2017  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: jashkenas/underscore

рдореИрдВ Babel рдХреЗ рд╕рд╛рде underscore.min рдХреЛ рд░реВрдкрд╛рдВрддрд░рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред рдореБрдЭреЗ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐, рдЧрд▓реНрдк рдХреЗ рд╕рд╛рде, рдореИрдВ рд╕рднреА рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдорд░реНрдЬ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдлрд┐рд░ рдЙрдиреНрд╣реЗрдВ рдмреЗрдмреЗрд▓ рдХреЗ рд╕рд╛рде рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рдХреЗ рд╕рд╛рде рдпрд╣ рдПрдХ рддреНрд░реБрдЯрд┐ рджреЗрддрд╛ рд╣реИред

рдЖрдк рдЗрд╕реЗ рдпрд╣рд╛рдВ рдЖрдЬрдорд╛ рд╕рдХрддреЗ рд╣реИрдВ: https://babeljs.io/repl/# ?babili=false&evaluate=true&lineWrap=false&presets=es2015

рджрд╛рд╣рд┐рдиреЗ рдкреИрдирд▓ рдХреЗ рдиреАрдЪреЗ рдПрдХ рддреНрд░реБрдЯрд┐ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ: "рдпреВ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИ"ред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореБрдЭреЗ "рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреА рд╕рдВрдкрддреНрддрд┐ '_' рдирд╣реАрдВ рдкрдврд╝ рд╕рдХрддрд╛" рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ, рдЬреЛ рдЕрд▓рдЧ рд╣реИ рд▓реЗрдХрд┐рди рдЯреВрдЯрд╛ рднреА рд╣реИред

рдЖрдк рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рдХреЗ рдХрд┐рд╕ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдпрд╣ https://github.com/jashkenas/underscore/pull/2153 рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ рдЬрд┐рд╕реЗ рдорд╛рд╕реНрдЯрд░ рдореЗрдВ рдареАрдХ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдордиреЗ рдЕрднреА рддрдХ рдПрдХ рд░рд┐рд▓реАрдЬ рдирд╣реАрдВ рднреЗрдЬреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рд╢рд╛рдорд┐рд▓ рд╣реИред

рдЖрдк рдЗрд╕реЗ рдорд╛рд╕реНрдЯрд░ рдкрд░ рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдЖрдЬрд╝рдорд╛ рд╕рдХрддреЗ рд╣реИрдВ (https://github.com/jashkenas/underscore/blob/master/underscore.js) рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЗрд╕рд╕реЗ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИ?

рдЖрдк рдЬреЛ рдкрд╛рдПрдВ, рдореБрдЭреЗ рдЙрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдПрдВред

рд╕рднреА 5 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореБрдЭреЗ "рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреА рд╕рдВрдкрддреНрддрд┐ '_' рдирд╣реАрдВ рдкрдврд╝ рд╕рдХрддрд╛" рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ, рдЬреЛ рдЕрд▓рдЧ рд╣реИ рд▓реЗрдХрд┐рди рдЯреВрдЯрд╛ рднреА рд╣реИред

рдЖрдк рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рдХреЗ рдХрд┐рд╕ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдпрд╣ https://github.com/jashkenas/underscore/pull/2153 рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ рдЬрд┐рд╕реЗ рдорд╛рд╕реНрдЯрд░ рдореЗрдВ рдареАрдХ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдордиреЗ рдЕрднреА рддрдХ рдПрдХ рд░рд┐рд▓реАрдЬ рдирд╣реАрдВ рднреЗрдЬреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рд╢рд╛рдорд┐рд▓ рд╣реИред

рдЖрдк рдЗрд╕реЗ рдорд╛рд╕реНрдЯрд░ рдкрд░ рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдЖрдЬрд╝рдорд╛ рд╕рдХрддреЗ рд╣реИрдВ (https://github.com/jashkenas/underscore/blob/master/underscore.js) рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЗрд╕рд╕реЗ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИ?

рдЖрдк рдЬреЛ рдкрд╛рдПрдВ, рдореБрдЭреЗ рдЙрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдПрдВред

рдореИрдВ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг 1.8.3 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, "рдЖрд╡рд╢реНрдпрдХрддрд╛" рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг, рдореИрдВ рдЕрд╕рд┐рдВрдЪрд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред

рдирд┐рд░реНрдпрд╛рдд рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИ, рдЖрдкрдХреЛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╡рд╛рддрд╛рд╡рд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ node.js/io.js, browserify/webpack рдЖрджрд┐ред

рдЖрдк exports рдХреЗ рд╕рд╛рде рддреНрд░реБрдЯрд┐ рдХрд╣рд╛рдВ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ? рдореБрдЭреЗ рд╡рд╣ рд╕рдВрджреЗрд╢ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ рдЬрдм рдЙрд╕реЗ рдЯреНрд░рд╛рдВрд╕рдкрд╛рдЗрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреИрдмреЗрд▓ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЛрдб рдареАрдХ рджрд┐рдЦрддрд╛ рд╣реИред рдЬрдмрдХрд┐ рдЕрдВрдбрд░рд╕реНрдХреЛрд░ exports рдЪрд░ рдХрд╛ рд╕рдВрджрд░реНрдн рджреЗрддрд╛ рд╣реИ, рдпрд╣ рдкрд╣рд▓реЗ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд╣реИ рдХреЗрд╡рд▓ exports рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдпрджрд┐ рдпрд╣ рд╕реНрд╡рдпрдВ рдХреЛ рдиреЛрдб рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдЪрд▓ рд░рд╣рд╛ рд╣реИред

рдореВрд▓ рд░реВрдк рд╕реЗ, рд╡рд╣ "рддреНрд░реБрдЯрд┐" рд╕рд┐рд░реНрдл рдмрд╛рдмреЗрд▓ рдорджрджрдЧрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХрдард┐рди рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреА рд╣реИред

рдЕрдзрд┐рдХ рд╢реЛрдз рдХреЗ рдмрд╛рдж рд╕рдВрдкрд╛рджрд┐рдд

рдореИрдВрдиреЗ рдЕрднреА рджреЗрдЦрд╛... рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рдХреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЕрдВрддрд┐рдо рдкрдВрдХреНрддрд┐ рд╕реНрд╡рдпрдВ рдХреЛ this рдХреЗ рд╕рд╛рде рдЖрдордВрддреНрд░рд┐рдд рдХрд░рдирд╛ рд╣реИ:

}.call(this));

рд╣рд╛рд▓рд╛рдБрдХрд┐ рдмреИрдмреЗрд▓ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдорд┐рдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдЕрдВрддрд┐рдо рдкрдВрдХреНрддрд┐ рдХреЛ undefined рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

}.call(undefined));

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ ES6 рдореЙрдбреНрдпреВрд▓ рдореЗрдВ, this рдХреЛ undefined рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдИрд╕реАрдПрдордП рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдХрдард┐рди рд╕рдордп рд╣реЛ рд░рд╣рд╛ рд╣реИ) рдЗрд╕рд▓рд┐рдП рдмреЗрдмреЗрд▓ рдЗрд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред

рд╕реНрдЯреИрдХ рдУрд╡рд░рдлреНрд▓реЛ: рдмреЗрдмреЗрд▓ рдХреЛ 'рдЗрд╕' рдХреЛ 'рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд' рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рд╕реЗ рдХреИрд╕реЗ рд░реЛрдХреЗрдВ

рдмреЗрдмреЗрд▓ рдХреЗ рдСрдирд▓рд╛рдЗрди рджреБрднрд╛рд╖рд┐рдпрд╛ рд╕реЗ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ:

screen shot 2017-02-26 at 9 56 47 pm

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рдпрд╣ рдЗрд╕ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рдХреЗ рд╕рд╛рде рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: https://github.com/jashkenas/underscore/commit/8a847ba69e521b3d7f4faaa6c7c039bcb8e6497b @lexdene рд╕реЗ

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕ рд╕реБрдзрд╛рд░ рдХреЗ рд╕рд╛рде рдХреЛрдИ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд░рд┐рд▓реАрдЬ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ; рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг 1.8.3 рдореЗрдВ рдпрд╣ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИ...

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕