Backbone.js рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рд╣рдХрд░реНрдореА! рдХреНрдпрд╛ рдЖрдкрдиреЗ рдХрднреА рд╕реЛрдЪрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рд╡рд┐рд░рд╛рд╕рдд рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИ?
рдЬрд╛рдирд┐рдП рдХреИрд╕реЗ
Backbone.Model.extend({})
рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИ?
рдФрд░ рдЖрдкрдХреЛ рд╢рд╛рдпрдж рдкрддрд╛ рд╣реИ рдФрд░ рдпрд╛рдж рд╣реИ рдХрд┐ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рджреЛ рд╡реИрдХрд▓реНрдкрд┐рдХ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИрдВ: рдкреНрд░реЛрдЯреЛ рдкреНрд░реЙрдкреНрд╕ рдФрд░ рд╕реНрдЯреИрдЯрд┐рдХ рдкреНрд░реЙрдкреНрд╕ред
рдпрджрд┐ рдЖрдкрдиреЗ рдЙрдкрд░реЛрдХреНрдд рдкреНрд░рд╢реНрдиреЛрдВ рдореЗрдВ рд╕реЗ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдкреНрд░рд╢реНрди рдХрд╛ рдирдХрд╛рд░рд╛рддреНрдордХ рдЙрддреНрддрд░ рджрд┐рдпрд╛ рд╣реИ, рддреЛ рдореИрдВ рдмрд┐рд▓реНрд▓реА рдХреЗ рдиреАрдЪреЗ рдкреВрдЫрддрд╛ рд╣реВрдВред
рдореИрдВ рдЪрд░рдг-рджрд░-рдЪрд░рдг рдЕрдиреБрд╕рдВрдзрд╛рди, рдЖрд░реЗрдЦ, рдЯреИрдмрд▓реЗрдЯ рдФрд░ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдЦреБрд╢ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред
рдкреНрд░рд╕реНрддрд╛рд╡рдирд╛
рдореЗрд░реЗ рд▓рд┐рдП рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдпрд╣ рд╕рдордЭрдирд╛ рдХрд┐ рдкреНрд░рдпреБрдХреНрдд рдкреБрд╕реНрддрдХрд╛рд▓рдп / рдШрдЯрдХ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ (рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╡рд╣ рдЬреЛ рдореИрдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ) рдХреБрдЫ рдЕрдирд┐рд╡рд╛рд░реНрдп рдФрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдХреНрдпреЛрдВ?
- рдЖрдк рддреГрддреАрдп-рдкрдХреНрд╖ рд▓реЛрдХрдкреНрд░рд┐рдп рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рд╕реЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдирдП, рдЙрдкрдпреЛрдЧреА рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рд╕реАрдЦ рд╕рдХрддреЗ рд╣реИрдВред
- рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдХрд╛рдо рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХрд┐рд╕реА рд╕рдорд╕реНрдпрд╛ / рдмрдЧ рдкрд░ рдХрд╕рдиреЗ рдХрд╛ рдЬреЛрдЦрд┐рдо рдХрдо рд╕реЗ рдХрдо рд╣реИ
- рдУрдкрдиреЗрдВрд╕рд░реНрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдХрд╛рдВрдЯрд╛ рдХрд░рдиреЗ рдФрд░ рдЕрдкрдирд╛ рдмрд┐рдЯ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдореМрдХрд╛ рд╣реИ
рдореИрдВ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ Backbone.js рдореЗрдВ рд╡рдВрд╢рд╛рдиреБрдХреНрд░рдо рдХреЗ рдореБрджреНрджреЗ рдкрд░ рд░реБрдЪрд┐ рд░рдЦрддрд╛ рд╣реВрдВ
рдФрд░ рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рд╕реНрд░реЛрдд рдЦреЛрд▓рд╛, рдФрд░ ... рдЪрд▓реЛ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рдУ!
рдореИрдВ рддреБрд░рдВрдд рдПрдХ рдЖрд░рдХреНрд╖рдг рдХрд░реВрдБрдЧрд╛: рд╡рд┐рд░рд╛рд╕рдд рд╕рднреА рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд╣реИ, рдЪрд╛рд╣реЗ рд╡рд╣ рдореЙрдбрд▓, рджреГрд╢реНрдп, рд╕рдВрдЧреНрд░рд╣ рдпрд╛ рд░рд╛рдЙрдЯрд░ рд╣реЛред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рджреГрд╢реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛ред
рдкреНрд░рд▓реЗрдЦрди
рдкреНрд░рд▓реЗрдЦрди рд╕реЗ, рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╡рд┐рд╕реНрддрд╛рд░ рд╡рд┐рдзрд┐ рдХреЗ рджреЛ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИрдВ: рдЧреБрдг рдФрд░ classPropertiesред
Backbone.View.extend (рдЧреБрдг, [classProperties])
рдЖрдк рдпрд╣ рднреА рд╕рдордЭ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреЗрд╡рд▓ classProperties рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЧреБрдг рдРрд╕реЗ рд╣реИрдВред
рдФрд░ рдпрджрд┐ рдкрд╣рд▓реЗ рддрд░реНрдХ рдХреЛ рдЖрдо рддреМрд░ рдкрд░ рд╕рднреА рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рджреВрд╕рд░реЗ (classProperties) рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдХреЗрд╡рд▓ рдореЙрдбрд▓ рдФрд░ рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд▓рд┐рдП рджрд╕реНрддрд╛рд╡реЗрдЬ рдореЗрдВ рд╣рдореЗрдВ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
рдЕрдкрдиреА рдЦреБрдж рдХреА рдПрдХ рд╕рдВрдЧреНрд░рд╣ рдХрдХреНрд╖рд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, Backbone.Collection рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рдЧреБрдг рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рд╡реИрдХрд▓реНрдкрд┐рдХ classProperties рдХреЛ рд╕реАрдзреЗ рд╕рдВрдЧреНрд░рд╣ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХрд╛рд░реНрдп рдореЗрдВ рд╕рдВрд▓рдЧреНрди рдХрд┐рдпрд╛ рдЬрд╛рдПред
рд╣рдо рд╕реЛрд░реНрд╕ рдХреЛрдб рджреЗрдЦрддреЗ рд╣реИрдВ
рдбреЗрд╡рд▓рдкрд░ рдЯреВрд▓ рдбреАрдмрдЧрд░ рдХреА рддрд░рд╣, рдЪрд▓реЛ рд╡рд┐рд╕реНрддрд╛рд░ рд╡рд┐рдзрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рддреЗ рд╣реИрдВред
рдЯреЗрд╕реНрдЯ рдХреЛрдб:
Backbone.View.extend({ testProp1: true }, { testProp2: true });
рд╕реНрдЯреЗрдЬ # 1
рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рд╕реЗ рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХреБрдЫ рдмрджрд▓рд╛рд╡реЛрдВ рдХреЗ рд╕рд╛рде goog.inherits (рдЬреЛ рдореБрдЭреЗ рдирд╣реАрдВ рдирд┐рдкрдЯрдирд╛ рдерд╛) рдХрд╛ рдПрдХ рдПрдирд╛рд▓реЙрдЧ рд╣реИред
рдкрд╣рд▓реЗ рдЪрд░рдг рдореЗрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕:
- рдкреНрд░реЛрдЯреЛрдкрдкреНрд░реЙрдкреНрд╕: рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдкрд╣рд▓рд╛ рддрд░реНрдХ
- staticProps: рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рджреВрд╕рд░рд╛ рддрд░реНрдХ
- рдорд╛рддрд╛-рдкрд┐рддрд╛: рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдирд┐рд░реНрдорд╛рддрд╛ Backbone.View рд╣реИ
- рдмрдЪреНрдЪрд╛: рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЕрднреА рддрдХ рдХреБрдЫ рдЕрдЬреНрдЮрд╛рдд рд╣реИ

рддреБрд░рдВрдд рдореИрдВ рджреЛ рдмрд┐рдВрджреБрдУрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╕рдордЭрддрд╛ рд╣реВрдВ:
1. Backbone.View рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдПрдХ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдЬреЛ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ, рдШрдЯрдирд╛рдУрдВ рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрдиреЗ, рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдФрд░ рдЕрдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдХрд╛рдо рдореЗрдВ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВ рдФрд░ рдкрд░реНрджреЗ рдХреЗ рдкреАрдЫреЗ рдЬрдЧрд╣ рд▓реЗрддреЗ рд╣реИрдВред
2. Backbone.View.prototype рдорд╛рдирдХ рд╡рд┐рдзрд┐рдпреЛрдВ рдФрд░ рдЧреБрдгреЛрдВ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рд╣реИ: рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛, рд╣рдЯрд╛рдирд╛, рдЖрджрд┐ред
рд╕реНрдЯреЗрдЬ # 2
if (protoProps && _.has(protoProps, 'constructor')) { child = protoProps.constructor; } else { child = function(){ return parent.apply(this, arguments); }; }
рдкрд╣рд▓реЗ рд╕реЗ рдЕрдирдЬрд╛рди рдмрдЪреНрдЪреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЗ рдкрд╣рд▓реЗ рдкреИрд░рд╛рдореАрдЯрд░ (рдкреНрд░реЛрдЯреЛрдкреЙрдкреНрд╕) рдореЗрдВ рджрд┐рдП рдЧрдП рдлрдВрдХреНрд╢рди рдореЗрдВ рдпрд╛ рдмреИрдХрдмреЛрди. рд╡реНрдпреВ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИред рдЕрдм рддрдХ, рд╣рдо рдЗрд╕ рдкрд░ рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИрдВ рдФрд░ рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред
рд╕реНрдЯреЗрдЬ # 3
_.extend(child, parent, staticProps);
Backbone.View рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдФрд░ рд╣рдорд╛рд░реЗ рд╕реНрдЯреЗрдЯрд┐рдХрдкреНрд░реЙрдкреНрд╕ рдХреЗ рд╕рднреА рдЧреБрдгреЛрдВ рдФрд░ рддрд░реАрдХреЛрдВ рдХреЗ рд╕рд╛рде рдмрдЪреНрдЪреЗ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдВред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, Backbone.View рдирд┐рд░реНрдорд╛рддрд╛ рдХреЗ рдкрд╛рд╕ рдХреЛрдИ рдЧреБрдг рдФрд░ рд╡рд┐рдзрд┐рдпрд╛рдВ рдирд╣реАрдВ рд╣реИрдВ, рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рд┐рд░реНрдл рдорд╛рдорд▓реЗ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдк рдХрднреА рдирд╣реАрдВ рдЬрд╛рдирддреЗ, рдХрд┐рд╕реА рджрд┐рди рд╡реЗ рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗ, рдФрд░ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред
рд╕реНрдЯреЗрдЬ # 4
var Surrogate = function(){ this.constructor = child; }; Surrogate.prototype = parent.prototype; child.prototype = new Surrogate;
рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рд░реЛрдЧреЗрдЯ рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдЖрдкрдХреЗ рд╕рд╛рде рд╣рдорд╛рд░реЗ рдмрдЪреНрдЪреЗ рдХрд╛ рдПрдХ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд╣реИ, рдЬрд┐рд╕рдХреА рдирд┐рд░реНрдорд╛рддрд╛ рд╕рдВрдкрддреНрддрд┐ рдмрдЪреНрдЪрд╛ рд╣реИ (рд╣рд╛рдБ, рд╣рд╛рдБ, рдпрд╣ рд╣реИ) рдФрд░ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк Backbone.View.prototype рд╣реИред

рдЗрд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдпрд╣ рд╣реИ рдХрд┐ рдмрдЪреНрдЪреЗ рдХреЛ Backbone.View.prototype рдХреЗ рдЧреБрдгреЛрдВ рдФрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рд╣рдо рдЙрдиреНрд╣реЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдореВрд▓реНрдпрд╡рд╛рди рдореЗрдореЛрд░реА рдХреА рдмрдЪрдд рд╣реЛрддреА рд╣реИред
рд╕реНрдЯреЗрдЬ # 5
if (protoProps) _.extend(child.prototype, protoProps); child.__super__ = parent.prototype; return child;
рдкреНрд░реЛрдЯреЙрдкрдкреНрд░реЙрдкреНрд╕ рдХреЗ рдЧреБрдгреЛрдВ рдФрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдмрдЪреНрдЪреЗ (рд╕рд░реЛрдЧреЗрдЯ) рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк (рд╡рд┐рд╕реНрддрд╛рд░ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдкрд╣рд▓рд╛ рддрд░реНрдХ) рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ рдФрд░ __super__ рд╕рдВрдкрддреНрддрд┐ рдмрдирд╛рдПрдВ, рдЬреЛ Backbone.View.prototype рдХрд╛ рд╕рдВрджрд░реНрдн рд╣реЛрдЧрд╛ред
рдирддреАрдЬрддрди, рд╣рдореЗрдВ рдПрдХ рд╡рд╕рд╛ рдирд┐рд░реНрдорд╛рддрд╛ (рдмрдЪреНрдЪрд╛) рдорд┐рд▓рддрд╛ рд╣реИ рдЬреЛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

рдирд┐рд╖реНрдХрд░реНрд╖ рдФрд░ рдЙрдкрдпреЛрдЧ рдХреЗ рдЙрджрд╛рд╣рд░рдг
рд╡рд┐рд╕реНрддрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ, рд╣рдо рдорд╛рдирдХ рдЧреБрдгреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕реНрдерд┐рд░ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╡реЗ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реЛрдВрдЧреЗред
var ViewConstructor = Backbone.View.extend({ protoMehod: function () { console.log(this.constructor.staticMethod()); } }, { staticProperty: 5, staticMethod: function () { return 'Hello from constructor. Property is ' + this.staticProperty; } }); var viewInstance = new ViewConstructor();
рджреВрд╕рд░реЗ рддрд░реНрдХ рдСрдмреНрдЬреЗрдХреНрдЯ (staticProps) рдореЗрдВ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрджрд░реНрдн ViewConstructor рд╣реИред рдкрд╣рд▓реЗ рддрд░реАрдХреЛрдВ рдХреЗ рд▓рд┐рдП - viewInstanceред
рд╣рдо рд╡рд┐рд╕реНрддрд╛рд░ рд╡рд┐рдзрд┐ рдХреЗ рдкрд╣рд▓реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рдХреЗрд╡рд▓ рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛ рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ рдЗрд╕реЗ рд╕реЗрдЯ рдХрд░рдХреЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдЕрдкрдиреЗ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
Backbone.View.extend({ constructor: function () {
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдирдП рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рддреЗ рд╕рдордп, рдкрд╣рд▓реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рдкреБрдирд░реНрдирд┐рд░реНрдорд┐рдд рдПрдХ рдирд┐рд░реНрдорд╛рдгрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рджреВрд╕рд░реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рднреА рд╕реНрдерд┐рд░ рдЧреБрдг рдЙрдкрд▓рдмреНрдз рд╣реЛрдВрдЧреЗ, рд╕рд╛рде рд╣реА Backbone.View.prototype рдХреЗ рд╕рднреА рддрд░реАрдХреЗ рднреА рдЙрдкрд▓рдмреНрдз рд╣реЛрдВрдЧреЗред