рд╕рднреА рдЬреЛ рдорд░реНрдЬ рд╣реЛрддреЗ рд╣реИрдВ: рд░рд╛рдЗрдмреЛрд╕реЛрдорд▓ рдХреЛрдб рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░

рдЫрд╡рд┐

рдпрд╣ рд╕рдм рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред

w //  () { function table(qIn = {}) { q["tit"] = "Wargana"; /** init- */ q["render"] = function(q){ }; qIn = merge(q, qIn); /** merge- */ if (q["m"] == "img") q = merge(q, img.table(qIn), qIn); if (q["m"] == "map") q = merge(q, gmap.table(qIn), qIn); q["render"](q); /** action- */ } } img //  1 () { function table(qIn = {}) { q["render"] = function(q) { return "img" + qIn["tit"]; }; return q; } } gmap //  2 () { function table(qIn = {}) { q["render"] = function(q) { return "map" + qIn["tit"] + this.markers(qIn); } return q; } function markers(qIn = {}) { q["layer"] = function(q) { }; qIn = merge(q, qIn); if (q["layerM"] == "cadastr") q = merge(q, cadastr.markers(qIn), qIn); return q; } } cadastr //  2.1 () { function markers(qIn = {}) { q["layer"] = function(q) { return "cadastr"; } return q; } } /** client-,  */ w.table({m : "img"}) w.table({m : "map", layerM : "cadastr"}) w.table({m : input("tableM"), layerM : input("gmapLayerM")}) 


рдХреЛрдб рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг


  1. рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯред Init рд╕реЗрдХреНрд╢рди рдПрдХреНрдЯ рд╕реЗрдХреНрд╢рди рдХреЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд╕рдВрдЪрд╛рд▓рди рдХреА рдЧрд╛рд░рдВрдЯреА рдХреЗ рд▓рд┐рдП рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред рдЙрд╕реА рд╕рдордп, рдорд░реНрдЬ рдЕрдиреБрднрд╛рдЧ рдПрдХреНрдЯ рд╕реЗрдХреНрд╢рди рдХреЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИред

     q = merge(q, ..., qIn); 

    рдорд░реНрдЬ рд╕реВрдЪреА рдХреЗ рдЕрдВрдд рдореЗрдВ qIn рдЧреНрд░рд╛рд╣рдХ рдХреА рд╕рд░реНрд╡реЛрдЪреНрдЪ рд╢рдХреНрддрд┐ рдХреА рдЧрд╛рд░рдВрдЯреА рд╣реИ: рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдХреЛрдб рдХреЛ рдЦреБрдж рдХреЛ рдХреИрд╕реЗ рдореБрд╢реНрдХрд┐рд▓ рдХрд░рдирд╛ рд╣реИ, рдЧреНрд░рд╛рд╣рдХ рд╣рдореЗрд╢рд╛ "рдЕрдкрдиреЗ рдЧреЗрдо рдореЗрдВ рдереЛрдк рд╕рдХрддрд╛ рд╣реИ"ред

    рдЗрдирд┐рдЯ рдореЗрдВ рдореБрдЦреНрдп рдЪреАрдЬ - рдорд░реНрдЬ - рдПрдХреНрдЯ рд╕реНрдХреАрдо рдЗрдирд┐рдЯ - рдПрдХреНрдЯ рд▓рд┐рдВрдХреЗрдЬ рд╣реИ, рдФрд░ рдорд░реНрдЬ рджреНрд╡рд┐рддреАрдпрдХ рд╣реИред

     function some(qIn = {}) { q["render"] = function(q){ return 1; }; q = merge(q, qIn); return q["render"](q); } 

    рдЕрдВрддрд┐рдо рд╡рдВрд╢рд╛рд╡рд▓реА:
     function some(){ q["render"] = function(q){ return 1; }; return q["render"](q); } 

    рдЙрддреНрдкрд╛рджрди рд╢реВрдиреНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:
     function some(){ return 1; } 


  2. рдореЗрд╖ рдкреНрд▓рдЧрдЗрдиред "Init - Merge - Act" рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдХреЛрдб рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдХрд┐рд╕реА рднреА рд╕реНрддрд░ рдХреЗ рдШреЛрдВрд╕рд▓реЗ рдХреЗ рд▓рд┐рдП рдмреБрдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ IMA рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдкрд░ рдПрдХ рдорд░реНрдЬ () '' рдХреЛ рдЕрдВрджрд░ рдХрд░рдиреЗ рдХреЗ рддрд░реНрдХ рднреА рдмрдирд╛рдП рдЧрдП рд╣реИрдВред

    рдЗрдВрдЯрд░рдлреЗрд╕

     function some(){ q["isGrab"] = 0; q = merge(q, plugSome(q)); } function plugSome(qIn = {}) { q["isGrab"] = 1; q = merge(q, qIn); return q; } 

    рдЕрдкрдиреЗ рдПрдХреНрдЯ-рд╕реЗрдХреНрд╢рди (рдЬреЛ рдХрд┐ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдирд╣реАрдВ рд╣реИ) рдХреЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд╕рдВрдЪрд╛рд▓рди рдХреА рдЧрд╛рд░рдВрдЯреА рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП isGrab рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЕрдк-рд╣реЛрд╕реНрдЯ-рдЗрди (in -host ) рдХрд╛ рдЗрди-рд╕реЗрдХреНрд╢рди, рдЙрд╕реА рд╕рдордп рдорд░реНрдЬ-рд╕реЗрдХреНрд╢рди рдореЗрдВ рдЬреБрдбрд╝реЗ рдЗрд╕рдХреЗ рд╕рднреА рдкреНрд▓рдЧ-рдЗрди рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ ред

    рдпрд╣ рдкреВрд░реНрд╡-рдвреЗрд░ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рдХреЗрд╡рд▓ рдХрд╛рд░реНрдпреЛрдВ рдкрд░ рдЖрдИрдПрдордП-рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЪрд┐рддреНрд░рдг рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдкреНрд▓рдЧ-рдЗрди рдХреЛ рдкрд╛рд░рд┐рдд рдХреНрдпреВ рдкреИрд░рд╛рдореАрдЯрд░ рдЙрдЪреНрдЪрддрдо рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд╛рд╡рд░ рдХреА рдЙрдкрд░реНрдпреБрдХреНрдд рдЧрд╛рд░рдВрдЯреА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдмреЗрд╢рдХ, рдХрд┐рд╕реА рднреА рд╕рдордп, рдЖрдк рдпрд╛ рддреЛ q рдХреЗ рд╕рд╛рде рдХреБрдЫ рдкреВрд░реНрд╡-рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдХреЗ рдЗрд╕ рд╢рдХреНрддрд┐ рдХреЛ рд╕реАрдорд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдкреНрд▓рдЧ-рдЗрди рдЧреНрд░рд┐рдб рдореЗрдВ q рдХреЗ рдбрд╛рдЙрди-рдЗрдирд╡рд░реНрдЬрди рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рддреНрдпрд╛рдЧ рд╕рдХрддреЗ рд╣реИрдВред

    Neymspeysing

    рдПрдХ рд╕рд╛рдЭрд╛ рдмрд╕ рдореЗрдВ рдореЗрд╖ рдкреНрд▓рдЧ-рдЗрди рдкреВрд░реЗ рдкреНрд▓рдЧ-рдЗрди рд╕рдмрдиреЗрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдХрд▓ рдирд╛рдо рд╕реНрдерд╛рди рдмрдирд╛рддрд╛ рд╣реИ, рдПрдХ рддрд░рдл, рд╡рд┐рднрд┐рдиреНрди рдореЗрдЬрдмрд╛рди рдореЗрдВ рдПрдХ рд╣реА рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдкреИрджрд╛ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдПрдХ рд╣реА рдореЗрдЬрдмрд╛рди рдореЙрдбреНрдпреВрд▓ рдХреЗ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХрд╛рд░реНрдп рднреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

     modHost { function a(){ q["isGrab"] = 0; } function b(){ q["isGrab"] = 0; } } 

    рдпрд╣ modHost.isGrabA, modHost.isGrabB рджрд░реНрдЬ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ

    рдФрд░ рджреВрд╕рд░реА рдУрд░, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╕рдмрд╕реЗ рдХрдордЪрдЯрдХрд╛ рдЧреНрд░рд┐рдб рдкреНрд▓рдЧ-рдЗрди (рдпрджрд┐ рдЧреНрд░рд┐рдб рд▓реЗрдЦрдХ рдЗрд╕реЗ рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ) рд╕рдВрджрд░реНрдн рддрд░реНрдХ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЕрдкрдиреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдкреВрд░реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдЕрдк-рдЯреНрд░реЗрд╕ рдХреЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

    рдХрд┐рд╕реА рднреА рд╕рдордп рддрдВрддреНрд░рд┐рдХрд╛ рддрдВрддреНрд░ рдХреЛ рд╢рд╛рдВрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреИрд░рд╛рдиреЙрдпрдб рдПрдХ рдиреНрдпреБрдЯреНрд░реЙрдкреАрдЬрд╝реЛрд╡реА рдЧреИрдк рдХреА рд╡реНрдпрд╡рд╕реНрдерд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдЯрд╛рдпрд░ рдХреЗ рдЖрд╕рди рдХреЗ рд╕рд╛рдордиреЗ рдорд░реНрдЬ рдХреЛ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ:

     function a(){ q["isGrab"] = 0; q = merge(q, b(q)); } function b(qPro = {}) { q["isGrab"] = !qPro["isGrab"]; ; /* q = merge(q, qIn); */ return q; } 

    рдЯрд╛рдЗрдкрд┐рдВрдЧ

    рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдореЙрдбрд▓рд┐рдВрдЧ рдХреЛ рдореЙрдбреНрдпреВрд▓рд░ рд╕реНрддрд░ рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдкреНрд░рд╡рд╛рд╣ рдХреЗ рд╕реНрддрд░ рддрдХ рдХрдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЪрдпрди рдареАрдХ рдЙрд╕реА рдкреИрд░рд╛рдореАрдЯрд░ рдмрди рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рдЪрдпрдирд┐рдд рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреИрд░рд╛рдореАрдЯрд░рд╛рдЗрдЬреЗрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ:

     if (input.getM() == "img") imgW.table({width : 50}) 

    рдмрдирд╛рдо

     w.table({m : input("m"), width : 50}) 

    рд╣реЛрд╕реНрдЯ (рдКрдкрд░реА рд╕реНрддрд░ рдХреЗ рдЕрд░реНрде рдХреА рдЗрдХрд╛рдЗрдпрд╛рдБ) рдЫреЛрдЯреЗ, рдЕрдзрд┐рдХ рдкреИрд░рд╛рдореАрдЯрд░ рдмрди рдЬрд╛рддреЗ рд╣реИрдВред


рд░рдгрдиреАрддрд┐

рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреИрд╕реЗ рдЬреЛрдбрд╝реЗрдВ


  1. рдорд╛рдБ рдХреЗ рдореЗрдЬрдмрд╛рди рд╕реЗ рдЗрдирд┐рдЯ рдЕрдиреБрднрд╛рдЧ рдХреЛ рдХреЙрдкреА-рдкреЗрд╕реНрдЯ рдХрд░реЗрдВ;
  2. рдПрдХ рдмреЗрдЯреА рдкреНрд▓рдЧ-рдЗрди рд╣реЛрд╕реНрдЯ рдмрдирд╛рдПрдВ рдФрд░ рд╡рд╣рд╛рдВ рдорд╛рдБ рд╣реЛрд╕реНрдЯ рдХреЗ рдЗрдирд┐рдЯ рд╕реЗрдХреНрд╢рди рдХрд╛ рдХрдВрдХрд╛рд▓ рдбрд╛рд▓реЗрдВ;
  3. рдпрджрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рд╕реВрдЯ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдкреНрд░рддреНрдпреЗрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рд░рд┐рдлрд╝реНрд▓реЗрд╢ рдпрд╛ рдмрд╛рд╣рд░ рдлреЗрдВрдХ рджреЗрдВ;
  4. рдорд╛рдБ рдХреЗ рдореЗрдЬрдмрд╛рди рдХреЗ рдорд░реНрдЬ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдмреЗрдЯреА рдХреЗ рдореЗрдЬрдмрд╛рди рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╢рд░реНрдд рдорд░реНрдЬ рдЬреЛрдбрд╝реЗрдВ;
  5. рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗрдХреНрд╢рди рдореЗрдВ рдкрд░рд┐рдЪрд┐рдд рдореЗрдЬрдмрд╛рдиреЛрдВ рдХреЗ рдирдП рдЕрддрд┐рд░рд┐рдХреНрдд рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред


рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреИрд╕реЗ рдирд┐рдХрд╛рд▓реЗрдВ


  1. рдорд░реНрдЬ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдорд╛рдБ рд╕реЗ рдмреЗрдЯреА рдХреЛ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ;
  2. рдореЗрдЬрдмрд╛рди рдмреЗрдЯреА рдХреЛ рд░рдЧрдбрд╝реЗрдВред


рдорд░реНрдЬ рдХреЛ рдХреИрд╕реЗ рдкрд╛рд░ рдХрд░реЗрдВ


 function some(qIn = {}) { // init- q["total"] = 15; // merge- // q = merge(q, someA(), someB(), qIn); qA = someA(); qB = someB(); qPro["total"] = q["total"] + qA["total"] + qB["total"] + qIn["total"]; q = merge(a, qA, qB, qIn, qPro); // act- } 

Source: https://habr.com/ru/post/In206896/


All Articles