рдореБрдЭреЗ рд╣рдореЗрд╢рд╛ рдХрдХреНрд╖рд╛ рдХреА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреА рдХрдореА рдХреЗ рдХрд╛рд░рдг рдереЛрдбрд╝рд╛ рдкрд░реЗрд╢рд╛рди рд╣реЛрдирд╛ рдкрдбрд╝рд╛, рдФрд░ рд╡рд┐рд░рд╛рд╕рдд рдХреЗ рд╕рд╛рде рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рдереЛрдбрд╝рд╛ рддрдирд╛ рд╣реБрдЖ рд╣реИред рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдмрд╣реБрдд рд╕рд╛рд░реА рд╕рд╛рдордЧреНрд░реА рдкрдврд╝реА рд╣реИ рдФрд░
рдпрд╣рд╛рдБ рд╕реЗ рдХрдИ "рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдбреНрд╕" рдХреА рдХреЛрд╢рд┐рд╢ рдХреА
рд╣реИ , рдЬрд┐рд╕рдореЗрдВ ajaxoop.js рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдереЛрдбрд╝реЗ рдХрдо рдХрд╛рдЯреЗ рдЧрдП рд╕рдВрд╕реНрдХрд░рдг рд╢рд╛рдорд┐рд▓
рд╣реИрдВ , рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рджреА рдЧрдИ, рдореБрдЭреЗ рдХреБрдЫ рднреА рдЙрдкрдпреБрдХреНрдд рдФрд░ рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рдорд┐рд▓рд╛ред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрдХ рдХрд╛рд░реНрдп рдерд╛ рдЬрд┐рд╕реЗ "рдкрд░рд┐рдЪрд┐рдд" рд╡рд┐рд░рд╛рд╕рдд рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА, рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реБрдЦрдж рдкрдХреНрд╖ рдкреНрд░рднрд╛рд╡, рдЬрд┐рд╕рдореЗрдВ рдХрдИ рд╡рд┐рд░рд╛рд╕рдд рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдереАред
рдЗрд╕рд▓рд┐рдП, рдореИрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдкрдиреА рд░рд╛рдп рдХреЗ рд╕рдорд╛рдзрд╛рди рдореЗрдВ рдЗрддрдирд╛ рд╕рд░рд▓ рдкреНрд░рд╕реНрддрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВ:
function ExtClass(supers) {
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 2 рдореВрд▓ рд╡рд░реНрдЧ рдмрдирд╛рдПрдВ:
function Parent1() { ExtClass.call(this);
рдФрд░ рдмрд╛рд▓ рд╡рд░реНрдЧ рдХреА рджреЛ рдХрдХреНрд╖рд╛рдПрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдЕрдкрдиреЗ рдорд╛рддрд╛-рдкрд┐рддрд╛ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реА:
function Child1() { ExtClass.call(this, { Parent1: null }); this.message = function() { return 'Child1::message'; } } function Child2() { ExtClass.call(this, { Parent2: null }); this.message = function() { return 'Child2::message'; } }
рдЦреИрд░, рдмрдЪреНрдЪреЗ рд╡рд░реНрдЧ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реА рд╕рд╛рд░рд╛рдВрд╢ рд╢реНрд░реЗрдгреА:
function Child12() { ExtClass.call(this, { Child1: null, Child2: null }); this.message = function() {
рдЕрдВрддрд┐рдо рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ рдФрд░ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рд╕рдВрджреЗрд╢ () рд╡рд┐рдзрд┐ рд╡рд╛рдкрд╕ рдЖ рдЧрдИ рд╣реИ:
var childTest = new Child12(); alert(childTest.message());
рдФрд░ рдпрд╣рд╛рдБ рдкрд░рд┐рдгрд╛рдо рд╣реИ:
Parent1::message
Parent2::message
Child1::message
Child2::message
Child12::message
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рднреА рдореВрд▓ рддрд░реАрдХреЗ рдареАрдХ рд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рд╕рдорд╛рдзрд╛рди рдХрдИ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛, рд╢реБрднрдХрд╛рдордирд╛рдПрдБ!