рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдореИрдВ рдбреЗрдХреЛрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдХрд░рддрд╛ рд╣реВрдВред рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдореИрдВрдиреЗ рдЕрд╢реБрджреНрдзрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ
рд╣рдмреНрд░реЛрдкрд┐рдЯрд┐рдХ рджреЗрдЦрд╛, рдЬрд┐рд╕рдиреЗ рдореБрдЭреЗ рдЕрдкрдирд╛ рдЕрдиреБрднрд╡ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпрд╛рдВ рдереЛрдбрд╝реА рд╕рдорд╛рди рд╣реИрдВред
рдЬрд╛рдиреЗ-рдорд╛рдиреЗ рдХреНрд░рд┐рдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдореБрдЭреЗ рдХреНрдпрд╛ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ?
Google рдкрд░ рдкрд╣рд▓реЗ рд▓рд┐рдВрдХ рджреНрд╡рд╛рд░рд╛ рджрд┐рдП рдЧрдП рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди, рдкрд╛рдпрдерди рдореЗрдВ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдХрдИ рд▓реЗрдЦреЛрдВ рдореЗрдВ, рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдирд╛, рдЙрд╕рдХреЗ рдлрд╝реАрд▓реНрдбреНрд╕ рдХреЛ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЗ рд╕рд╛рде рднрд░рдирд╛, рдФрд░ рдЗрди рдлрд╝реАрд▓реНрдбреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдШреЛрд╖рд┐рдд рдХреЙрд▓ рдХрд░рдирд╛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╣реИред
рдкрд╣рд▓реЗ рдкреГрд╖реНрда рдкрд░ рдХрдИ рд▓рд┐рдВрдХ рджрд┐рдП рдЧрдП рд╣реИрдВ рдЬреЛ рдореЗрд░реЗ рдЬреИрд╕реЗ рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ,
рдХрдИ рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реЗ рдореЗрд░реЗ рд▓рд┐рдП рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рд╣реИрдВред
рдореИрдВ рдЕрдкрдиреА рдмрд╛рдд рд╕реЗ рд╕рдмрд╕реЗ рд╕рд╣реА рдмрддрд╛рдКрдВрдЧрд╛ред
рд╕рд╛рдорд╛рдиреНрдп рд╕рдЬреНрдЬрд╛рдХрд╛рд░
рддреЛ рдбреЗрдХреЛрд░реЗрдЯрд░ рдХреНрдпрд╛ рд╣реИ?
рдбреЗрдХреЛрд░реЗрдЯрд░ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдЬреЛ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рддрд░реНрдХ рдлрд╝рдВрдХреНрд╢рди рдЬреЛрдбрд╝рддрд╛ рд╣реИред
рдкрд╛рдпрдерди рд╕реЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг:
def superfunc(n=2): print("Megclosure created") def clos(func): print("Megclosure used") def clos1(*args, **kwargs): print("Megclosured function",func.__name__) res = func(*args, **kwargs) return (res**n) return clos1 return clos def a(par): return par+9; b = (superfunc())(a) @superfunc(3) def c(txt): return len(txt)+1 print ( b(1),c("abc"*3))
рд╣рдо рдпрд╣рд╛рдВ рдХреНрдпрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?
рдпрд╣рд╛рдВ рд╣рдо рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рддреЗ рд╣реИрдВ рдЬреЛ рдПрдХ рдФрд░ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рддрд╛ рд╣реИ рдЬреЛ рдХрд┐ рд╣рдореЗрдВ рдЬрд╝рд░реВрд░рдд рд╣реИ рдФрд░ рд╕рдЬрд╛рдП рдЧрдП рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИред
рдпрд╣ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдХреИрд╕реЗ рд╣реЛрдЧрд╛
рдЗрд╕рд▓рд┐рдП, рд╣рдо рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЗрд╕реЗ рдлрд╝рдВрдХреНрд╢рди рдкрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░, рд╕рдВрднрд╡рддрдГ, рдЕрддрд┐рд░рд┐рдХреНрдд рдкреИрд░рд╛рдореАрдЯрд░, рдФрд░ рдЕрдирд┐рд░реНрдзрд╛рд░рд┐рдд рдлрд╝рдВрдХреНрд╢рди рдмреА рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддред
function decorator(){ ..... } ..... function a(){ ...... } ...... var b=decorator(a, arg1, arg2,....., argN);
ред
рдореИрдВ рдЕрдкрдиреА рдПрдХ
рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реЗ рдХреЛрдб рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рджреВрдВрдЧрд╛ред
function withVars(f, variables) { var args = Array.prototype.slice.call(arguments, 1);
рдФрд░ рдЖрд╡реЗрджрди:
function a(){ var str =""; for(var i=0;i<arguments.length;i++){ str+=arguments[i]+" "; } alert(str); } a(1,2,4,5,"six");
рдирддреАрдЬрддрди, рдХреЛрдб рдХреА рдХрдИ рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рд╣рдореЗрдВ рдПрдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдкреНрд░рднрд╛рд╡ рдорд┐рд▓рддрд╛ рд╣реИред
рдХрд▓рд╛рдИ рдХреА рдПрдХ рдЭрдЯрдХрд╛ рдХреЗ рд╕рд╛рде, рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдлрд┐рд░ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
Array.prototype.push.apply(p, args); f.apply(this, p);
рдкрд░
Array.prototype.push.apply(args,p); f.apply(this, args);
ред
рд╕рдВрднрд╡ рдЕрдиреБрдкреНрд░рдпреЛрдЧ
- рдорд╛рди рд▓реЗрдВ рдХрд┐ рдЖрдкрдХреЛ рдХреЙрд▓рдмреИрдХ 1 рд╕реЗ рдХреЙрд▓рдмреИрдХ 2, рдХреЙрд▓рдмреИрдХ 2 рд╕реЗ рдХреЙрд▓рдмреИрдХ 3 рдЖрджрд┐ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдЙрд╕реА рд╕рдордп рдХреБрдЫ рдбреЗрдЯрд╛ рдХреЛ рдПрдХ рдХреЙрд▓рдмреИрдХ рд╕реЗ рджреВрд╕рд░реЗ рдореЗрдВ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХрд░реЗрдВред рд╣рдо рдЗрд╡реЗрдВрдЯ рд╕реНрд░реЛрдд рдкрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рджреЗ рд╕рдХрддреЗред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рд╣рдо GM_xmlhttpRequest рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдШрдЯрдирд╛рдУрдВ рдХрд╛ рд╕реНрд░реЛрдд рд╣рдорд╕реЗ рдЫрд┐рдкрд╛ рд╣реБрдЖ рд╣реИ, рдФрд░ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдЪрд┐рдкрдХ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЬреЛ рдХреЙрд▓рдмреИрдХ рдореЗрдВ рд╕рдВрдЪрд░рдг рдХреЗ рд▓рд┐рдП рдордирдорд╛рдиреА рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рдмрдЪрд╛рддрд╛ рд╣реИред рдХрдИ рдЖрдпреЛрдЬрди рд╣реЛрдВрдЧреЗ рдФрд░ рд╡реЗ "рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ" рдЙрдареЗрдВрдЧреЗ, рдЗрд╕рд▓рд┐рдП рдПрдХ рдЪрд░ рдмрдирд╛рдирд╛ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИред
рдлрд┐рд░ рд╣рдо рдпрд╣ рдХрд░рддреЗ рд╣реИрдВ:
function cb1(evt){ ....... GM_xmlhttpRequest({ method: "GET", url: url2, onload: withVars(cb2,processed2) }); } function cb2(evt){ ....... GM_xmlhttpRequest({ method: "GET", url: url3, onload: withVars(cb3,processed3) }); } function cb3(evt){ ....... GM_xmlhttpRequest({ method: "GET", url: url4, onload: withVars(cb4,processed4) }); } function cb3(evt){ ..... } GM_xmlhttpRequest({ method: "GET", url: url1, onload: cb1 });
ред
рд╕рдорд╛рдзрд╛рди рдХрдИ рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИред
- рдбреЗрдЯрд╛ рд╕рддреНрдпрд╛рдкрдиред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдПрдХ рдбреЗрдХреЛрд░реЗрдЯрд░ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдкреНрд░рд╛рд░реВрдк рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рддрд░реНрдХреЛрдВ рдХреЗ рдкрддреНрд░рд╛рдЪрд╛рд░ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдЧрд╛, рдФрд░ рдпрджрд┐ рдпрд╣ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддрд╛ рд╣реИ, рддреЛ рддреНрд░реБрдЯрд┐ рдХреЛ рд░реВрдкрд╛рдВрддрд░рд┐рдд / рдлреЗрдВрдХ рджреЗрдВред
рдлрд┐рд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреА рддрд░рд╣ рдХреЛрдб рд▓рд┐рдЦрдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛:
var mult=fstrValidate(function(a,b){ return a*b; },"%d%d");
ред
- рдлрд╝рдВрдХреНрд╢рди рдирд┐рд╖реНрдкрд╛рджрди рдХреА рд╕реАрдорд╛ рдХреЛ рд╕реАрдорд┐рдд рдХрд░реЗрдВ
- рд╕реБрд╡рд┐рдзрд╛ред рдХрдИ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдбреЗрдХреЛрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдХреЛрдб рдХреНрд▓реАрдирд░, рдЕрдзрд┐рдХ рд╕реБрдВрджрд░ рдФрд░ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рд╣реЛрдЧрд╛ред
- рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЖрдкрдХреА рдХрд▓реНрдкрдирд╛ рджреНрд╡рд╛рд░рд╛ рд╕реАрдорд┐рдд рд╣реИрдВред рдпрджрд┐ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рддреА / рдмрджрд╕реВрд░рдд рд╣рд▓ "рд╕рд┐рд░ рдкрд░", рддреЛ рд╢рд╛рдпрдж рдЗрд╕реЗ рд╕рдЬреНрдЬрд╛рдХрд╛рд░реЛрдВ рдХреА рдорджрдж рд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдХреНрдпрд╛ рдкрдврд╝рдирд╛ рд╣реИ?
JavaScript.ru - рдХреНрд▓реЛрдЬрд░рддрд░реНрдХ - рдПрдордбреАрдПрдирдЖрд╡реЗрджрди рдХрд░реЗрдВ - рдПрдордбреАрдПрдирдзрдиреНрдпрд╡рд╛рдж рдХреЗ рд▓рд┐рдП PS рдзрдиреНрдпрд╡рд╛рдж UFO
UPD1: рдХрдИ рдЙрдкрдпреЛрдЧ рдЬреЛрдбрд╝реЗ рдЧрдПред
UPD2: рдХреЛрдб рдХреЛ рдереЛрдбрд╝рд╛ рдареАрдХ рдХрд┐рдпрд╛