рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рд░ рдХреЛрдИ рдЬреЛ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдмрд╛рд░ рдЕрдкрдиреЗ рддрд░реАрдХреЗ рд╕реЗ рдХреИрдирд╡рд╕ рдХреЗ рдкрд╛рд░ рдЖрдпрд╛ рдерд╛, рд╡рд╣ рдмрд╣реБрдд рдЕрд╕рд╣рдЬ рдирд╣реАрдВ рдерд╛ред рдХрд┐рд╕реА рднреА рд╕рдВрджрд░реНрдн рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдмрджрд▓рдиреЗ рдпрд╛ рдХрд┐рд╕реА рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреИрдирд╡рд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рд╕рдВрджрд░реНрдн рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рдлрд┐рд░ рд╡рд┐рдзрд┐ / рд╕рдВрдкрддреНрддрд┐ - рдпрд╣ рдмрд╣реБрдд рдХрд╖реНрдЯрдкреНрд░рдж рд╣реИред
рдореБрдЭреЗ рд╣рдореЗрд╢рд╛ рдпрд╣ рдХреЛрдб рдЪрд╛рд╣рд┐рдП:
var ctx = document.querySelectorAll('canvas')[0].getContext('2d'); ctx.fillStyle = '#eee'; ctx.strokeStyle = 'blue'; ctx.beginPath(); ctx.moveTo(10, 10) ctx.lineTo(100, 10) ctx.lineTo(100, 100) ctx.lineTo(10, 100) ctx.lineTo(10, 10) ctx.closePath() ctx.stroke() ctx.fill();
рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рдмрджрд▓реЛ:
ctx .fillStyle('#eee') .strokeStyle('blue') .beginPath() .moveTo(10, 10) .lineTo(100, 10) .lineTo(100, 100) .lineTo(10, 100) .lineTo(10, 10) .closePath() .stroke() .fill();
Sausage.js - 1268 рдмрд╛рдЗрдЯреНрд╕ (рдЬрд▓реНрдж рд╣реА рдПрдХ рдХрд┐рд▓реЛрдмрд╛рдЗрдЯ рд╕реЗ рдХрдо рд╣реЛрдЧрд╛), рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░ рд░рд╣рд╛ рд╣реИред
"рд▓реНрдпреВрдХ, __noSuchMethod__ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ" - рдФрд░ рд╕рднреА рдЪреАрдЬреЗрдВ, рдЖрдк рдХрд╣рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдкреНрд░рд╛рдЧреИрддрд┐рд╣рд╛рд╕рд┐рдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдорд░реНрдерди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?
рд╕рднреА рдЬреЛ рдХреИрдирд╡рд╕ рдХреЗ рдкреНрд░рддрд┐ рдЙрджрд╛рд╕реАрди рдирд╣реАрдВ рд╣реИрдВ, рдХреЙрд▓ рдХреА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдФрд░ рд▓рд┐рд╕реНрдк рдХреЗ рд▓рд┐рдП рдореИрдВ рдХреИрдЯ рдХреЗ рддрд╣рдд рдкреВрдЫрддрд╛ рд╣реВрдВ
рдХреНрдпреЛрдВ рд╕реЙрд╕реЗрдЬ рдФрд░ рд▓рд┐рд╕реНрдк рдХрд╛ рдЗрд╕рд╕реЗ рдХреНрдпрд╛ рд▓реЗрдирд╛-рджреЗрдирд╛ рд╣реИ?
рдпрд╣ рдХреЛрдб (рдХреНрд░реЙрд╕-рдмреНрд░рд╛рдЙрдЬрд╝рд░, рдкрд╣рд▓реЗ рдмреНрд▓реЙрдХ рдХреЗ рд╕рдорд╛рди рд╣реИ) рдХрд╛ рдЙрдкрдпреЛрдЧ Sausage.js рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдРрд╕реА рдЬрдВрдЬреАрд░реЗрдВ рд╕реЙрд╕реЗрдЬ рдХреА рддрд░рд╣ рд╣реЛрддреА рд╣реИрдВ - рдЗрд╕реАрд▓рд┐рдП рд╕реЙрд╕реЗрдЬ.рдЬреЗрдПрд╕ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣рд╛рдВ рдХреЛрдИ рд▓рд┐рд╕реНрдк рдирд╣реАрдВ рд╣реИ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдкреНрд░реЗрдореА рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдХреЛрд╖реНрдардХреЛрдВ рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░реЗрдВрдЧреЗ :)
__NoSuchMethod__ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХреНрдпреЛрдВ рдирд╣реАрдВ?
рд╣рд░ рдмрд╛рд░ рдЬрдм рдореИрдВрдиреЗ рд╕рдВрджрд░реНрдн рдмрджрд▓рд╛, рддреЛ рдореБрдЭреЗ рд╕рдВрджрд░реНрдн рдХреЗ рд╕рднреА рддрд░реАрдХреЛрдВ рдФрд░ рдЧреБрдгреЛрдВ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдЬрд╛рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рд╕рднреА рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ - рдпрд╣ рдорд╣рдВрдЧрд╛ рдФрд░ рд▓рдВрдмрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрдирдХрд╛рд░ рдХрд░ рджрд┐рдпрд╛ (рдореИрдВ рдЗрд╕реЗ рдмрд╛рдж рдореЗрдВ рдХрд░реВрдВрдЧрд╛), рд▓реЗрдХрд┐рди рдлрд╝рдВрдХреНрд╢рди рдЪреЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдорд╛рди рджреГрд╢реНрдп рдХреЗ рд▓рд┐рдП рдиреЗрддреГрддреНрд╡ рдХрд┐рдпрд╛ред
рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдореИрдВрдиреЗ __noSuchMethod__ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдирд╣реАрдВ рдмрдирд╛рдИ рдереА, рд▓реЗрдХрд┐рди рдлрд┐рд░ рдореИрдВрдиреЗ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ рдпрд╣ рд╕рд╣реА рд╣реЛрдЧрд╛ред рдФрд░ рд╕реЙрд╕реЗрдЬ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдирд╛рдо рдЕрдм рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдЕрдкрдирд╛ рдЕрд░реНрде рдЦреЛ рдЪреБрдХрд╛ рд╣реИред
__NoSuchMethod__ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд┐рд╕реА рднреА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд░реВрдк рдореЗрдВ рд╕реЙрд╕реЗрдЬ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
$$(canvasContext, {fixedContext: true}) (fillStyle, '#eee') (strokeStyle, 'blue') .beginPath() (moveTo, 10, 10) (lineTo, 100, 10) .lineTo(100, 100) (lineTo, 10, 100) (lineTo, 10, 10) (closePath) .stroke() .fill() ();
рд╕реЙрд╕реЗрдЬ.рдЬреЗрдПрд╕ рдЙрджрд╛рд╣рд░рдг
рдЙрджрд╛рд╣рд░рдг 1. рд╕рдВрджрд░реНрдн рдХреЛ рдмрджрд▓рдирд╛
context = {'foo': {'bar': '100500'}, 'bar': '888', 'zoo': /./};
рдЙрджрд╛рд╣рд░рдг 2. рдирд┐рд╢реНрдЪрд┐рдд рд╕рдВрджрд░реНрдн
context = {'foo': {'bar': '100500'}, 'bar': '888', 'zoo': /./};
рдЙрджрд╛рд╣рд░рдг 3. рдХреЙрд▓рд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди - рд╕рдВрджрд░реНрдн рдорд╛рди рдХреЛ рдмрджрд▓рдирд╛
context = {'foo': 1};
рдЙрджрд╛рд╣рд░рдг 4. DOM рдЖрд╡рд░рдг
result = $$(document) ('getElementById', 'div1') ('style') ('width', '100px')
рдЙрджрд╛рд╣рд░рдг 5. рдПрдХ jQuery рдЖрд╡рд░рдг
result = $$(jQuery) (['#div2'])
рд░реВрдкрд░реЗрдЦрд╛
рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдкреНрд░реЛрдлрд╛рдЗрд▓рд░ рд╕реЗ рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдФрд░ рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
$$.profile();
рдирддреАрдЬрддрди, рд╣рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ
[anonymous function] Object { calls=2, time=0} [context call] Object { calls=1, time=0} [switching context] Object { calls=7, time=0} animate Object { calls=1, time=5} bar Object { calls=2, time=0} width Object { calls=1, time=0}
рд╡рд┐рдкрдХреНрд╖
- рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рд╡рд┐рдзрд┐рдпреЛрдВ / рдЧреБрдгреЛрдВ рдХреЗ рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ (рдпрджрд┐ рдЖрдк рд╕реЙрд╕реЗрдЬ рдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ)
- рдЕрд▓рд╡рд┐рджрд╛ рд╕реНрд╡рд╕рдВрдЪрд╛рд▓рд┐рдд (рдпрджрд┐ рдЖрдк рд╕реЙрд╕реЗрдЬ рдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ)
- рдереЛрдбрд╝рд╛ рдзреАрдорд╛ рдЪреБрдиреМрддреА
- рдмрд┐рдВрджреБ рд╕рдВрдХреЗрддрди рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЙрди рд╡рд┐рдзрд┐рдпреЛрдВ / рдЧреБрдгреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ рдЬреЛ рдлрд╝рдВрдХреНрд╢рди рд╣реИрдВ (рд▓рдВрдмрд╛рдИ, рдХреЙрд▓, рд▓рд╛рдЧреВ, ...) рдпрд╣ рдЕрд╕рдВрднрд╡ рд╣реИ -
$$([1,2,3]).length()();
, рдпрд╣ рд╕рдВрднрд╡ рд╣реИ -
$$([1,2,3])('length')();
рдЖрдХрд░реНрд╖рдг рдЖрддреЗ рд╣реИрдВ
- рд╢рдмреНрджрдХреЛрд╢ рдХреЗ рдХрд╛рд░рдг, рдПрдХ рдмрд┐рдВрджреБ рдХреА рдХрдореА рдФрд░ рдЬрдВрдЬреАрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ - рд╕рдВрдкреАрдбрд╝рди рдХреЗ рдмрд╛рдж рдХреЛрдб рдХреА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдПрдХ
рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрдореА- рдкреНрд░реЛрдлрд╛рдЗрд▓ рдкреНрд░реЛрдлрд╛рдЗрд▓ рдХреЛ рдкрд╛рд░ рдХрд░рдиреЗ рдФрд░ рдХреЙрд▓ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЧрд┐рдирдиреЗ рдХреА рдХреНрд╖рдорддрд╛
- рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг "рдмрдВрдбрд▓"
рд╕рдВрджрд░реНрдн
рд▓рд╛рдЗрд╡ рдЙрджрд╛рд╣рд░рдг
jsfiddle.net/azproduction/LUXwYрдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде
рдЕрди рдкреИрдХ рд╕рдВрд╕реНрдХрд░рдг (9168 рдмрд╛рдЗрдЯреНрд╕)
рд╕реЙрд╕реЗрдЬ- js.googlecode.com/svn/trunk/Sausage.jsрдкреИрдХреЗрдЬреНрдб рд╡рд░реНрдЬрди (1268 рдмрд╛рдЗрдЯреНрд╕)
рд╕реЙрд╕реЗрдЬ- js.googlecode.com/svn/trunk/Sausage.min.dsрд╕реЙрд╕реЗрдЬ- js.googlecode.com/svn/trunk/Sausage-profile.js рдкреНрд░реЛрдлрд╛рдЗрд▓рд░ рдХреЗ рд╕рд╛рде рд╕рдВрд╕реНрдХрд░рдг
рдЖрд▓реЛрдЪрдирд╛, рд╕реБрдЭрд╛рд╡ рдФрд░ рд╕реБрдЭрд╛рд╡ рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИред
рдпреВрдкреАрдбреА рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рд╡рд┐рд╡рд░рдг рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛