Mercurial > js4py-pl-slides
changeset 163:9fdd2e763356
Add rendered HTML slides
| author | Radomir Dopieralski <sheep-devel@sheep.art.pl> |
|---|---|
| date | Sat, 15 Sep 2012 14:01:11 +0200 |
| parents | d2292b860f11 |
| children | c2b302dcbf64 |
| files | slides.html |
| diffstat | 1 files changed, 338 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/slides.html Sat Sep 15 14:01:11 2012 +0200 @@ -0,0 +1,338 @@ +<!DOCTYPE html> +<!-- saved from url=(0034)http://127.0.0.1:8080/+slides/Home --> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<link type="text/css" href="docs/slides.css" rel="stylesheet"> +<link type="text/css" href="docs/pygments.css" rel="stylesheet"> + +<title>Home</title> +</head><body style="font-size: 28.71875px; "><div class="slide" style="display: block; "><h1>JavaScript dla Programistów Pythona</h1><p id="line_0"><br> +</p><p id="line_2"><b><a href="mailto:pycon%40sheep%2Eart%2Epl" class="external mail" title="mailto:pycon@sheep.art.pl">Radomir Dopieralski</a></b> +</p><p id="line_4"><i>Grupa Allegro</i> +</p><p id="line_6">PyConPl 2012</p></div><div class="slide" style="display: none; "><h1>JavaScript</h1><ul id="line_0"><li>1995</li><li>Brendan Eich, Netscape</li><li>10 dni</li><li>Mocha → LiveScript → JavaScript → ECMAScript</li></ul></div><div class="slide" style="display: none; "><h1>Konsola</h1><a name="head-0-1"></a><h2 id="line_0">Linux</h2><ul id="line_1"><li>node.js</li><li>rhino</li></ul><div class="highlight"><pre><span id="line_4"><span class="nv">$ </span>js +</span></pre></div><a name="head-0-2"></a><h2 id="line_7">MacOS X</h2><p id="line_8">/System/Library/Frameworks/JavaScriptCore.framework/<br>Versions/Current/Resources/jsc +</p><a name="head-0-3"></a><h2 id="line_10">Windows i inne</h2><p id="line_11"><a href="http://www.jsdb.org/" class="external" title="http://www.jsdb.org">http://www.jsdb.org</a></p></div><div class="slide" style="display: none; "><h1>Zen Pythona</h1><ul id="line_0"><li>Piękne jest lepsze niż brzydkie.</li><li>Wyrażone wprost jest lepsze niż domniemane.</li><li>Proste jest lepsze niż złożone.</li><li>Złożone jest lepsze niż skomplikowane.</li><li>Płaskie jest lepsze niż wielopoziomowe.</li><li>Rzadkie jest lepsze niż gęste.</li><li>Czytelność się liczy.</li><li>Sytuacje wyjątkowe nie są na tyle wyjątkowe, aby łamać reguły.</li><li>Choć praktyczność przeważa nad konsekwencją.</li></ul></div><div class="slide" style="display: none; "><h1>Zen Pythona c.d.</h1><ul id="line_0"><li>Błędy zawsze powinny być sygnalizowane.</li><li>Chyba że zostaną celowo ukryte.</li><li>W razie niejasności powstrzymaj pokusę zgadywania.</li><li>Powinien być jeden – i najlepiej tylko jeden – oczywisty sposób na zrobienie danej rzeczy.</li><li>Choć ten sposób może nie być oczywisty jeśli nie jest się Holendrem.</li><li>Teraz jest lepsze niż nigdy.</li><li>Chociaż nigdy jest często lepsze niż natychmiast.</li><li>Jeśli rozwiązanie jest trudno wyjaśnić, to jest ono złym pomysłem.</li><li>Jeśli rozwiązanie jest łatwo wyjaśnić, to może ono być dobrym pomysłem.</li><li>Przestrzenie nazw to jeden z niesamowicie genialnych pomysłów – miejmy ich więcej!</li></ul></div><div class="slide" style="display: none; "><h1>Ściągawka z Pythona</h1><ul id="line_0"><li>zmienne są etykietami, nie pojemnikami</li><li>wartości, nie zmienne, mają typy</li><li>wszystko jest dynamiczne</li><li>wszystko jest obiektem</li></ul></div><div class="slide" style="display: none; "><h1>Zasięg zmiennej</h1><ul id="line_0"><li>Zmienne lokalne <code>locals()</code></li><li>Zmienne globalne <code>globals()</code></li><li>Zmienne wbudowane <code>buildins</code></li></ul></div><div class="slide" style="display: none; "><h1>Funkcja jako parametr</h1><div class="highlight"><pre><span id="line_1"><span class="k">def</span> <span class="nf">lowercase</span><span class="p">(</span><span class="n">s</span><span class="p">):</span> +</span><span id="line_2"> <span class="k">return</span> <span class="n">s</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> +</span><span id="line_3"> +</span><span id="line_4"><span class="n">my_list</span> <span class="o">=</span> <span class="p">[</span><span class="s">'a'</span><span class="p">,</span> <span class="s">'B'</span><span class="p">,</span> <span class="s">'c'</span><span class="p">]</span> +</span><span id="line_5"><span class="n">my_list</span><span class="o">.</span><span class="n">sort</span><span class="p">(</span><span class="n">key</span><span class="o">=</span><span class="n">lowercase</span><span class="p">)</span> +</span><span id="line_6"><span class="k">print</span> <span class="n">my_list</span> +</span></pre></div></div><div class="slide" style="display: none; "><h1>Wiązanie metod</h1><div class="highlight"><pre><span id="line_1"><span class="k">def</span> <span class="nf">call_with_a</span><span class="p">(</span><span class="n">method</span><span class="p">):</span> +</span><span id="line_2"> <span class="n">method</span><span class="p">(</span><span class="s">'a'</span><span class="p">)</span> +</span><span id="line_3"> +</span><span id="line_4"><span class="n">my_list</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="line_5"><span class="n">call_with_a</span><span class="p">(</span><span class="n">my_list</span><span class="o">.</span><span class="n">append</span><span class="p">)</span> +</span><span id="line_6"><span class="k">print</span> <span class="n">my_list</span> +</span></pre></div></div><div class="slide" style="display: none; "><h1>Domknięcia</h1><div class="highlight"><pre><span id="line_1"><span class="k">def</span> <span class="nf">create_get_set</span><span class="p">():</span> +</span><span id="line_2"> <span class="n">value</span> <span class="o">=</span> <span class="p">[</span><span class="bp">None</span><span class="p">]</span> +</span><span id="line_3"> <span class="k">def</span> <span class="nf">get</span><span class="p">():</span> +</span><span id="line_4"> <span class="k">return</span> <span class="n">value</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> +</span><span id="line_5"> <span class="k">def</span> <span class="nf">set</span><span class="p">(</span><span class="n">new_value</span><span class="p">):</span> +</span><span id="line_6"> <span class="n">value</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">=</span> <span class="n">new_value</span> +</span><span id="line_7"> <span class="k">return</span> <span class="n">get</span><span class="p">,</span> <span class="nb">set</span> +</span></pre></div></div><div class="slide" style="display: none; "><h1>Zmienna liczba argumentów</h1><div class="highlight"><pre><span id="line_1"><span class="k">def</span> <span class="nf">get_arguments</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> +</span><span id="line_2"> <span class="k">return</span> <span class="n">args</span><span class="p">,</span> <span class="n">kwargs</span> +</span><span id="line_3"> +</span><span id="line_4"><span class="n">get_argumenst</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="n">four</span><span class="o">=</span><span class="mi">5</span><span class="p">)</span> +</span></pre></div><div class="highlight"><pre><span id="line_8"><span class="n">my_list</span> <span class="o">=</span> <span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">]</span> +</span><span id="line_9"><span class="n">my_dict</span> <span class="o">=</span> <span class="p">{</span><span class="s">'four'</span><span class="p">:</span> <span class="mi">5</span><span class="p">}</span> +</span><span id="line_10"> +</span><span id="line_11"><span class="n">get_arguments</span><span class="p">(</span><span class="o">*</span><span class="n">my_list</span><span class="p">,</span> <span class="o">**</span><span class="n">my_dict</span><span class="p">)</span> +</span></pre></div></div><div class="slide" style="display: none; "><h1>Przecinki</h1><div class="highlight"><pre><span id="line_1"><span class="o">></span> <span class="kd">var</span> <span class="nx">a</span> <span class="o">=</span> <span class="p">[</span> +</span><span id="line_2"><span class="p">...</span> <span class="mi">1</span><span class="p">,</span> +</span><span id="line_3"><span class="p">...</span> <span class="mi">2</span><span class="p">,</span> +</span><span id="line_4"><span class="p">...</span> <span class="mi">3</span><span class="p">,</span> +</span><span id="line_5"><span class="p">...</span> <span class="p">]</span> +</span><span id="line_6"><span class="o">></span> <span class="nx">a</span> +</span><span id="line_7"><span class="p">[</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span> <span class="p">]</span> +</span></pre></div></div><div class="slide" style="display: none; "><h1>Klamry</h1><p id="line_0">Dobrze +</p><div class="highlight"><pre><span id="line_2"><span class="k">return</span> <span class="p">{</span> +</span><span id="line_3"> <span class="nx">javascript</span><span class="o">:</span> <span class="s2">"fantastic"</span> +</span><span id="line_4"><span class="p">};</span> +</span></pre></div><p id="line_7">Źle +</p><div class="highlight"><pre><span id="line_9"><span class="k">return</span> +</span><span id="line_10"><span class="p">{</span> +</span><span id="line_11"> <span class="nx">javascript</span><span class="o">:</span> <span class="s2">"fantastic"</span> +</span><span id="line_12"><span class="p">};</span> +</span></pre></div></div><div class="slide" style="display: none; "><h1>Średniki</h1><div class="highlight"><pre><span id="line_1"><span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">node</span> <span class="o">=</span> <span class="nx">getNode</span><span class="p">();</span> <span class="nx">node</span><span class="p">.</span><span class="nx">parent</span><span class="p">;</span> <span class="nx">node</span> <span class="o">=</span> <span class="nx">node</span><span class="p">.</span><span class="nx">parent</span><span class="p">)</span> +</span><span id="line_2"><span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">node</span><span class="p">)</span> +</span></pre></div><div class="highlight"><pre><span id="line_6"><span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">node</span> <span class="o">=</span> <span class="nx">getNode</span><span class="p">();</span> <span class="nx">node</span><span class="p">.</span><span class="nx">parent</span><span class="p">;</span> <span class="nx">node</span> <span class="o">=</span> <span class="nx">node</span><span class="p">.</span><span class="nx">parent</span><span class="p">);</span> +</span><span id="line_7"><span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">node</span><span class="p">);</span> +</span></pre></div></div><div class="slide" style="display: none; "><h1>W razie niejasności powstrzymaj pokusę zgadywania</h1><p id="line_0">…</p></div><div class="slide" style="display: none; "><h1>Obiekt globalny</h1><div class="highlight"><pre><span id="line_1"><span class="o">></span> <span class="kd">var</span> <span class="nx">global</span> <span class="o">=</span> <span class="p">(</span><span class="kd">function</span> <span class="p">()</span> <span class="p">{</span> <span class="k">return</span> <span class="k">this</span> <span class="p">}</span> <span class="p">())</span> +</span><span id="line_2"><span class="o">></span> <span class="nx">global</span><span class="p">.</span><span class="nx">global_variable</span> <span class="o">=</span> <span class="mi">5</span> +</span><span id="line_3"><span class="mi">5</span> +</span><span id="line_4"><span class="o">></span> <span class="nx">global_variable</span> +</span><span id="line_5"><span class="mi">5</span> +</span></pre></div></div><div class="slide" style="display: none; "><h1>Domyślnie globalne</h1><div class="highlight"><pre><span id="line_1"><span class="o">></span> <span class="kd">var</span> <span class="nx">f</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span> <span class="nx">variable</span> <span class="o">=</span> <span class="mi">3</span> <span class="p">}</span> +</span><span id="line_2"><span class="o">></span> <span class="nx">f</span><span class="p">()</span> +</span><span id="line_3"><span class="o">></span> <span class="nx">variable</span> +</span><span id="line_4"><span class="mi">3</span> +</span><span id="line_5"><span class="o">></span> <span class="kd">var</span> <span class="nx">g</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span> <span class="kd">var</span> <span class="nx">local_variable</span> <span class="o">=</span> <span class="mi">3</span> <span class="p">}</span> +</span><span id="line_6"><span class="o">></span> <span class="nx">g</span><span class="p">()</span> +</span><span id="line_7"><span class="o">></span> <span class="nx">local_variable</span> +</span><span id="line_8"><span class="nx">ReferenceError</span><span class="o">:</span> <span class="nx">local_variable</span> <span class="nx">is</span> <span class="nx">not</span> <span class="nx">defined</span> +</span></pre></div></div><div class="slide" style="display: none; "><h1>Przestrzenie nazw</h1><p id="line_0">Przestrzenie nazw to jeden z niesamowicie genialnych pomysłów – miejmy ich więcej! +</p></div><div class="slide" style="display: none; "><h1>Owijanie w funkcję</h1><div class="highlight"><pre><span id="line_1"><span class="kd">var</span> <span class="nx">global_variable</span><span class="p">;</span> +</span><span id="line_2"> +</span><span id="line_3"><span class="p">(</span><span class="kd">function</span> <span class="p">()</span> <span class="p">{</span> +</span><span id="line_4"> +</span><span id="line_5"><span class="kd">var</span> <span class="nx">local_variable</span><span class="p">;</span> +</span><span id="line_6"> +</span><span id="line_7"><span class="p">...</span> +</span><span id="line_8"> +</span><span id="line_9"><span class="p">}())</span> +</span></pre></div></div><div class="slide" style="display: none; "><h1>Równość</h1><div class="highlight"><pre><span id="line_1"><span class="o">></span> <span class="mi">1</span> <span class="o">==</span> <span class="mi">1</span> +</span><span id="line_2"><span class="kc">true</span> +</span><span id="line_3"><span class="o">></span> <span class="mi">1</span> <span class="o">==</span> <span class="s1">'1'</span> +</span><span id="line_4"><span class="kc">true</span> +</span><span id="line_5"><span class="o">></span> <span class="mi">0</span> <span class="o">==</span> <span class="s1">''</span> +</span><span id="line_6"><span class="kc">true</span> +</span><span id="line_7"><span class="o">></span> <span class="mi">0</span> <span class="o">==</span> <span class="kc">false</span> +</span><span id="line_8"><span class="kc">true</span> +</span><span id="line_9"><span class="o">></span> <span class="s1">'0'</span> <span class="o">==</span> <span class="mi">0</span> +</span><span id="line_10"><span class="kc">true</span> +</span><span id="line_11"><span class="o">></span> <span class="s1">'0'</span> <span class="o">==</span> <span class="s1">''</span> +</span><span id="line_12"><span class="kc">false</span> +</span></pre></div></div><div class="slide" style="display: none; "><h1>Dodawanie</h1><div class="highlight"><pre><span id="line_1"><span class="o">></span> <span class="s1">'a'</span> <span class="o">+</span> <span class="s1">'b'</span> +</span><span id="line_2"><span class="s1">'ab'</span> +</span><span id="line_3"><span class="o">></span> <span class="mi">1</span> <span class="o">+</span> <span class="mi">2</span> +</span><span id="line_4"><span class="mi">3</span> +</span><span id="line_5"><span class="o">></span> <span class="s1">'1'</span> <span class="o">+</span> <span class="mi">2</span> +</span><span id="line_6"><span class="s1">'12'</span> +</span><span id="line_7"><span class="o">></span> <span class="mi">1</span> <span class="o">+</span> <span class="s1">'2'</span> +</span><span id="line_8"><span class="s1">'12'</span> +</span><span id="line_9"><span class="o">></span> <span class="s1">''</span> <span class="o">+</span> <span class="mi">1</span> <span class="o">+</span> <span class="mi">2</span> +</span><span id="line_10"><span class="s1">'12'</span> +</span><span id="line_11"><span class="o">></span> <span class="o">+</span><span class="s1">'1'</span> <span class="o">+</span> <span class="mi">2</span> +</span><span id="line_12"><span class="mi">3</span> +</span><span id="line_13"><span class="o">></span> <span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">]</span> <span class="o">+</span> <span class="p">[</span><span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">]</span> +</span><span id="line_14"><span class="s1">'1,23,4'</span> +</span><span id="line_15"><span class="o">></span> <span class="p">{}</span> <span class="o">+</span> <span class="p">{}</span> +</span><span id="line_16"><span class="s1">'[object Object][object Object]'</span> +</span></pre></div></div><div class="slide" style="display: none; "><h1>Wyrażone wprost</h1><p id="line_0">Wyrażone wprost jest lepsze niż domniemane.</p></div><div class="slide" style="display: none; "><h1>Not a number</h1><div class="highlight"><pre><span id="line_1"><span class="o">></span> <span class="mi">3</span> <span class="o">*</span> <span class="s1">'a'</span> +</span><span id="line_2"><span class="kc">NaN</span> +</span><span id="line_3"><span class="o">></span> <span class="kc">NaN</span> <span class="o">+</span> <span class="mi">1</span> +</span><span id="line_4"><span class="kc">NaN</span> +</span><span id="line_5"><span class="o">></span> <span class="k">typeof</span> <span class="kc">NaN</span> +</span><span id="line_6"><span class="s1">'number'</span> +</span><span id="line_7"><span class="o">></span> <span class="mi">3</span> <span class="o">*</span> <span class="s1">'a'</span> <span class="o">===</span> <span class="kc">NaN</span> +</span><span id="line_8"><span class="kc">false</span> +</span><span id="line_9"><span class="o">></span> <span class="kc">NaN</span> <span class="o">==</span> <span class="kc">NaN</span> +</span><span id="line_10"><span class="kc">false</span> +</span><span id="line_11"><span class="o">></span> <span class="nb">isNaN</span><span class="p">(</span><span class="kc">NaN</span><span class="p">)</span> +</span><span id="line_12"><span class="kc">true</span> +</span></pre></div></div><div class="slide" style="display: none; "><h1>Ukryte błedy</h1><ul id="line_0"><li>Błędy zawsze powinny być sygnalizowane.</li><li>Chyba że zostaną celowo ukryte.</li></ul></div><div class="slide" style="display: none; "><h1>Konwersje</h1><table id="line_0"><thead><tr><th> Typ </th><th> Python </th><th> JavaScript </th></tr></thead><tbody><tr><td> String </td><td> <code>str(x)</code> </td><td> <code>'' + x</code> </td></tr><tr><td> Float </td><td> <code>float(x)</code> </td><td> <code>+x</code> </td></tr><tr><td> Integer </td><td> <code>int(x)</code> </td><td> <code>Math.round(x)</code> </td></tr><tr><td> Boolean </td><td> <code>bool(x)</code> </td><td> <code>!!x</code> </td></tr><tr><td> Object </td><td> - </td><td> <code>Number(x)</code>, <code>String(x)</code> </td></tr><tr><td> Array/List </td><td> <code>list(x)</code> </td><td> <code>Array.prototype.slice.call(x)</code> </td></tr></tbody></table></div><div class="slide" style="display: none; "><h1>Czytelność</h1><p id="line_0">Czytelność się liczy.</p></div><div class="slide" style="display: none; "><h1>Podobieństwa</h1><div class="highlight"><pre><span id="line_1"><span class="o">></span> <span class="kd">var</span> <span class="nx">jso</span> <span class="o">=</span> <span class="p">{}</span> +</span><span id="line_2"><span class="o">></span> <span class="nx">jso</span><span class="p">[</span><span class="s1">'A'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'apple'</span> +</span><span id="line_3"><span class="o">></span> <span class="nx">jso</span><span class="p">[</span><span class="s1">'A'</span><span class="p">]</span> +</span><span id="line_4"><span class="nx">apple</span> +</span></pre></div><div class="highlight"><pre><span id="line_8"><span class="gp">>>> </span><span class="n">pyo</span> <span class="o">=</span> <span class="p">{}</span> +</span><span id="line_9"><span class="gp">>>> </span><span class="n">pyo</span><span class="p">[</span><span class="s">'A'</span><span class="p">]</span> <span class="o">=</span> <span class="s">'apple'</span> +</span><span id="line_10"><span class="gp">>>> </span><span class="n">pyo</span><span class="p">[</span><span class="s">'A'</span><span class="p">]</span> +</span><span id="line_11"><span class="go">'apple'</span> +</span></pre></div></div><div class="slide" style="display: none; "><h1>Klucze</h1><div class="highlight"><pre><span id="line_1"><span class="o">></span> <span class="kd">var</span> <span class="nx">jso</span> <span class="o">=</span> <span class="p">{}</span> +</span><span id="line_2"><span class="o">></span> <span class="nx">jso</span><span class="p">[</span><span class="s1">'1'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'one'</span> +</span><span id="line_3"><span class="o">></span> <span class="nx">jso</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> +</span><span id="line_4"><span class="nx">one</span> +</span></pre></div><div class="highlight"><pre><span id="line_8"><span class="o">></span> <span class="kd">var</span> <span class="nx">jso</span> <span class="o">=</span> <span class="p">{}</span> +</span><span id="line_9"><span class="o">></span> <span class="kd">var</span> <span class="nx">a</span> <span class="o">=</span> <span class="p">{},</span> <span class="nx">b</span> <span class="o">=</span> <span class="p">{};</span> +</span><span id="line_10"><span class="o">></span> <span class="nx">jso</span><span class="p">[</span><span class="nx">a</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'apple'</span> +</span><span id="line_11"><span class="nx">apple</span> +</span><span id="line_12"><span class="o">></span> <span class="nx">jso</span><span class="p">[</span><span class="nx">b</span><span class="p">]</span> +</span><span id="line_13"><span class="nx">apple</span> +</span><span id="line_14"><span class="o">></span> <span class="nx">jso</span><span class="p">[</span><span class="s1">'[object Object]'</span><span class="p">]</span> +</span><span id="line_15"><span class="nx">apple</span> +</span></pre></div></div><div class="slide" style="display: none; "><h1>Brak wartości</h1><div class="highlight"><pre><span id="line_1"><span class="gp">>>> </span><span class="n">pyo</span> <span class="o">=</span> <span class="p">{}</span> +</span><span id="line_2"><span class="gp">>>> </span><span class="n">pyo</span><span class="p">[</span><span class="s">'dne'</span><span class="p">]</span> +</span><span id="line_3"><span class="gt">Traceback (most recent call last):</span> +</span><span id="line_4"> File <span class="nb">"<stdin>"</span>, line <span class="m">1</span>, in <span class="n"><module></span> +</span><span id="line_5"><span class="gr">KeyError</span>: <span class="n">'dne'</span> +</span></pre></div><div class="highlight"><pre><span id="line_9"><span class="o">></span> <span class="kd">var</span> <span class="nx">jso</span> <span class="o">=</span> <span class="p">{}</span> +</span><span id="line_10"><span class="o">></span> <span class="nx">jso</span><span class="p">[</span><span class="s1">'dne'</span><span class="p">]</span> +</span><span id="line_11"><span class="kc">undefined</span> +</span><span id="line_12"><span class="o">></span> <span class="nx">jso</span><span class="p">[</span><span class="s1">'dne'</span><span class="p">]</span> <span class="o">===</span> <span class="k">void</span> <span class="mi">0</span> +</span><span id="line_13"><span class="kc">true</span> +</span></pre></div></div><div class="slide" style="display: none; "><h1>Undefined</h1><div class="highlight"><pre><span id="line_1"><span class="o">></span> <span class="kc">undefined</span> +</span><span id="line_2"><span class="kc">undefined</span> +</span><span id="line_3"><span class="o">></span> <span class="k">typeof</span> <span class="kc">undefined</span> +</span><span id="line_4"><span class="s1">'undefined'</span> +</span><span id="line_5"><span class="o">></span> <span class="kd">var</span> <span class="kc">undefined</span> <span class="o">=</span> <span class="mi">1</span> +</span><span id="line_6"><span class="o">></span> <span class="kc">undefined</span> +</span><span id="line_7"><span class="mi">1</span> +</span><span id="line_8"><span class="o">></span> <span class="k">typeof</span> <span class="kc">undefined</span> +</span><span id="line_9"><span class="s1">'number'</span> +</span><span id="line_10"><span class="o">></span> <span class="k">void</span> <span class="mi">0</span> +</span><span id="line_11"><span class="kc">undefined</span> +</span></pre></div></div><div class="slide" style="display: none; "><h1>Atrybuty</h1><div class="highlight"><pre><span id="line_1"><span class="o">></span> <span class="kd">var</span> <span class="nx">jso</span> <span class="o">=</span> <span class="p">{}</span> +</span><span id="line_2"><span class="o">></span> <span class="nx">jso</span><span class="p">[</span><span class="s1">'a'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'apple'</span> +</span><span id="line_3"><span class="o">></span> <span class="nx">jso</span><span class="p">.</span><span class="nx">a</span> +</span><span id="line_4"><span class="nx">apple</span> +</span><span id="line_5"><span class="o">></span> <span class="nx">jso</span><span class="p">.</span><span class="nx">b</span> <span class="o">=</span> <span class="s1">'banana'</span> +</span><span id="line_6"><span class="nx">banana</span> +</span><span id="line_7"><span class="o">></span> <span class="nx">jso</span><span class="p">[</span><span class="s1">'b'</span><span class="p">]</span> +</span><span id="line_8"><span class="nx">banana</span> +</span></pre></div></div><div class="slide" style="display: none; "><h1>Iterowanie po obiekcie</h1><div class="highlight"><pre><span id="line_1"><span class="o">></span> <span class="nx">obj</span> <span class="o">=</span> <span class="p">{</span><span class="s1">'a'</span><span class="o">:</span> <span class="mi">1</span><span class="p">,</span> <span class="s1">'b'</span><span class="o">:</span> <span class="mi">2</span><span class="p">,</span> <span class="s1">'c'</span><span class="o">:</span> <span class="mi">3</span><span class="p">}</span> +</span><span id="line_2"><span class="p">{</span> <span class="nx">a</span><span class="o">:</span> <span class="mi">1</span><span class="p">,</span> <span class="nx">b</span><span class="o">:</span> <span class="mi">2</span><span class="p">,</span> <span class="nx">c</span><span class="o">:</span> <span class="mi">3</span> <span class="p">}</span> +</span><span id="line_3"><span class="o">></span> <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">key</span> <span class="k">in</span> <span class="nx">obj</span><span class="p">)</span> <span class="p">{</span> <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">key</span><span class="p">)</span> <span class="p">}</span> +</span><span id="line_4"><span class="nx">a</span> +</span><span id="line_5"><span class="nx">b</span> +</span><span id="line_6"><span class="nx">c</span> +</span><span id="line_7"><span class="o">></span> <span class="nb">Object</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">d</span> <span class="o">=</span> <span class="mi">4</span> +</span><span id="line_8"><span class="mi">4</span> +</span><span id="line_9"><span class="o">></span> <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">key</span> <span class="k">in</span> <span class="nx">obj</span><span class="p">)</span> <span class="p">{</span> <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">key</span><span class="p">)</span> <span class="p">}</span> +</span><span id="line_10"><span class="nx">a</span> +</span><span id="line_11"><span class="nx">b</span> +</span><span id="line_12"><span class="nx">c</span> +</span><span id="line_13"><span class="nx">d</span> +</span><span id="line_14"><span class="o">></span> <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">key</span> <span class="k">in</span> <span class="nx">obj</span><span class="p">)</span> <span class="p">{</span> <span class="k">if</span> <span class="p">(</span><span class="nx">obj</span><span class="p">.</span><span class="nx">hasOwnProperty</span><span class="p">(</span><span class="nx">key</span><span class="p">))</span> <span class="p">{</span> <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">key</span><span class="p">)</span> <span class="p">}}</span> +</span><span id="line_15"><span class="nx">a</span> +</span><span id="line_16"><span class="nx">b</span> +</span><span id="line_17"><span class="nx">c</span> +</span></pre></div></div><div class="slide" style="display: none; "><h1>Array</h1><div class="highlight"><pre><span id="line_1"><span class="o">></span> <span class="kd">var</span> <span class="nx">a</span> <span class="o">=</span> <span class="k">new</span> <span class="nb">Array</span><span class="p">(</span><span class="s1">'a'</span><span class="p">,</span> <span class="s1">'b'</span><span class="p">,</span> <span class="s1">'c'</span><span class="p">)</span> +</span><span id="line_2"><span class="p">[</span> <span class="s1">'a'</span><span class="p">,</span> <span class="s1">'b'</span><span class="p">,</span> <span class="s1">'c'</span> <span class="p">]</span> +</span><span id="line_3"><span class="o">></span> <span class="kd">var</span> <span class="nx">b</span> <span class="o">=</span> <span class="p">[</span><span class="s1">'a'</span><span class="p">,</span> <span class="s1">'b'</span><span class="p">,</span> <span class="s1">'c'</span><span class="p">]</span> +</span><span id="line_4"><span class="p">[</span> <span class="s1">'a'</span><span class="p">,</span> <span class="s1">'b'</span><span class="p">,</span> <span class="s1">'c'</span> <span class="p">]</span> +</span><span id="line_5"><span class="o">></span> <span class="nx">a</span><span class="p">[</span><span class="mi">6</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'d'</span> +</span><span id="line_6"><span class="s1">'d'</span> +</span><span id="line_7"><span class="o">></span> <span class="nx">a</span> +</span><span id="line_8"><span class="p">[</span> <span class="s1">'a'</span><span class="p">,</span> <span class="s1">'b'</span><span class="p">,</span> <span class="s1">'c'</span><span class="p">,</span> <span class="p">,</span> <span class="p">,</span> <span class="p">,</span> <span class="s1">'d'</span> <span class="p">]</span> +</span><span id="line_9"><span class="o">></span> <span class="nx">a</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span> +</span><span id="line_10"><span class="kc">undefined</span> +</span></pre></div></div><div class="slide" style="display: none; "><h1>Iterowanie po tablicy</h1><div class="highlight"><pre><span id="line_1"><span class="o">></span> <span class="kd">var</span> <span class="nx">array</span> <span class="o">=</span> <span class="p">[</span><span class="s1">'a'</span><span class="p">,</span> <span class="s1">'b'</span><span class="p">,</span> <span class="s1">'c'</span><span class="p">]</span> +</span><span id="line_2"><span class="o">></span> <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">i</span> <span class="o"><</span> <span class="nx">array</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="o">++</span><span class="nx">i</span><span class="p">)</span> <span class="p">{</span> <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">array</span><span class="p">[</span><span class="nx">i</span><span class="p">])</span> <span class="p">}</span> +</span><span id="line_3"><span class="nx">a</span> +</span><span id="line_4"><span class="nx">b</span> +</span><span id="line_5"><span class="nx">c</span> +</span><span id="line_6"><span class="o">></span> <span class="nx">array</span><span class="p">.</span><span class="nx">forEach</span><span class="p">(</span><span class="kd">function</span> <span class="p">(</span><span class="nx">element</span><span class="p">,</span> <span class="nx">index</span><span class="p">,</span> <span class="nx">array</span><span class="p">)</span> <span class="p">{</span> <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">element</span><span class="p">)</span> <span class="p">})</span> +</span><span id="line_7"><span class="nx">a</span> +</span><span id="line_8"><span class="nx">b</span> +</span><span id="line_9"><span class="nx">c</span> +</span></pre></div></div><div class="slide" style="display: none; "><h1>Definiowanie funkcji</h1><div class="highlight"><pre><span id="line_1"><span class="kd">function</span> <span class="nx">f</span><span class="p">(</span><span class="nx">x</span><span class="p">,</span> <span class="nx">y</span><span class="p">,</span> <span class="nx">z</span><span class="p">)</span> <span class="p">{</span> +</span><span id="line_2"> <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">x</span><span class="p">);</span> +</span><span id="line_3"> <span class="k">return</span> <span class="nx">y</span><span class="p">;</span> +</span><span id="line_4"><span class="p">}</span> +</span></pre></div><div class="highlight"><pre><span id="line_8"><span class="kd">var</span> <span class="nx">f</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">x</span><span class="p">,</span> <span class="nx">y</span><span class="p">,</span> <span class="nx">z</span><span class="p">)</span> <span class="p">{</span> +</span><span id="line_9"> <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">x</span><span class="p">);</span> +</span><span id="line_10"> <span class="k">return</span> <span class="nx">y</span><span class="p">;</span> +</span><span id="line_11"><span class="p">}</span> +</span></pre></div></div><div class="slide" style="display: none; "><h1>Powinien być jeden</h1><p id="line_0">Powinien być jeden – i najlepiej tylko jeden – oczywisty sposób na zrobienie danej rzeczy.</p></div><div class="slide" style="display: none; "><h1>Holender</h1><p id="line_0">Choć ten sposób może nie być oczywisty jeśli nie jest się Holendrem.</p></div><div class="slide" style="display: none; "><h1>Wywołanie funkcji</h1><div class="highlight"><pre><span id="line_1"><span class="o">></span> <span class="kd">var</span> <span class="nx">f</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">x</span><span class="p">,</span> <span class="nx">y</span><span class="p">,</span> <span class="nx">z</span><span class="p">)</span> <span class="p">{</span> <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">x</span><span class="p">);</span> <span class="k">return</span> <span class="nx">y</span> <span class="p">}</span> +</span><span id="line_2"><span class="o">></span> <span class="nx">f</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">)</span> +</span><span id="line_3"><span class="mi">1</span> +</span><span id="line_4"><span class="mi">2</span> +</span><span id="line_5"><span class="o">></span> <span class="nx">f</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> +</span><span id="line_6"><span class="mi">1</span> +</span><span id="line_7"><span class="kc">undefined</span> +</span><span id="line_8"><span class="o">></span> <span class="nx">f</span><span class="p">()</span> +</span><span id="line_9"><span class="kc">undefined</span> +</span><span id="line_10"><span class="kc">undefined</span> +</span><span id="line_11"><span class="o">></span> <span class="nx">f</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">)</span> +</span><span id="line_12"><span class="mi">1</span> +</span><span id="line_13"><span class="mi">2</span> +</span></pre></div></div><div class="slide" style="display: none; "><h1>Wywołanie metody</h1><div class="highlight"><pre><span id="line_1"><span class="o">></span> <span class="kd">var</span> <span class="nx">o</span> <span class="o">=</span> <span class="p">{}</span> +</span><span id="line_2"><span class="o">></span> <span class="nx">o</span><span class="p">.</span><span class="nx">m</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">x</span><span class="p">,</span> <span class="nx">y</span><span class="p">,</span> <span class="nx">z</span><span class="p">)</span> <span class="p">{</span> <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="k">this</span><span class="p">);</span> <span class="k">return</span> <span class="nx">x</span> <span class="p">}</span> +</span><span id="line_3"><span class="o">></span> <span class="nx">o</span><span class="p">.</span><span class="nx">m</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> +</span><span id="line_4"><span class="p">{</span> <span class="nx">m</span><span class="o">:</span> <span class="p">[</span><span class="nb">Function</span><span class="p">]</span> <span class="p">}</span> +</span><span id="line_5"><span class="mi">1</span> +</span></pre></div></div><div class="slide" style="display: none; "><h1>this</h1><div class="highlight"><pre><span id="line_1"><span class="o">></span> <span class="kd">var</span> <span class="nx">f</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span> <span class="k">return</span> <span class="k">this</span> <span class="p">}</span> +</span><span id="line_2"><span class="o">></span> <span class="nx">f</span><span class="p">()</span> +</span><span id="line_3"><span class="p">...</span> +</span><span id="line_4"><span class="o">></span> <span class="kd">var</span> <span class="nx">o</span> <span class="o">=</span> <span class="p">{}</span> +</span><span id="line_5"><span class="o">></span> <span class="nx">o</span><span class="p">.</span><span class="nx">m</span> <span class="o">=</span> <span class="nx">f</span> +</span><span id="line_6"><span class="o">></span> <span class="nx">o</span> +</span><span id="line_7"><span class="p">{</span> <span class="nx">m</span><span class="o">:</span> <span class="p">[</span><span class="nb">Function</span><span class="p">]</span> <span class="p">}</span> +</span><span id="line_8"><span class="o">></span> <span class="nx">o</span><span class="p">.</span><span class="nx">m</span><span class="p">()</span> +</span><span id="line_9"><span class="p">{</span> <span class="nx">m</span><span class="o">:</span> <span class="p">[</span><span class="nb">Function</span><span class="p">]</span> <span class="p">}</span> +</span></pre></div></div><div class="slide" style="display: none; "><h1>Zmienna lista argumentów</h1><div class="highlight"><pre><span id="line_1"><span class="o">></span> <span class="kd">var</span> <span class="nx">f</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span> <span class="k">return</span> <span class="nx">arguments</span> <span class="p">}</span> +</span><span id="line_2"><span class="o">></span> <span class="nx">f</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">)</span> +</span><span id="line_3"><span class="p">{</span> <span class="s1">'0'</span><span class="o">:</span> <span class="mi">1</span><span class="p">,</span> +</span><span id="line_4"> <span class="s1">'1'</span><span class="o">:</span> <span class="mi">2</span><span class="p">,</span> +</span><span id="line_5"> <span class="s1">'2'</span><span class="o">:</span> <span class="mi">3</span> <span class="p">}</span> +</span><span id="line_6"><span class="o">></span> <span class="nx">f</span><span class="p">()</span> +</span><span id="line_7"><span class="p">{}</span> +</span><span id="line_8"><span class="o">></span> <span class="nx">f</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> +</span><span id="line_9"><span class="p">{</span> <span class="s1">'0'</span><span class="o">:</span> <span class="mi">1</span> <span class="p">}</span> +</span><span id="line_10"><span class="o">></span> <span class="nx">f</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">).</span><span class="nx">forEach</span><span class="p">(</span><span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">)</span> +</span><span id="line_11"><span class="nx">TypeError</span><span class="o">:</span> <span class="nb">Object</span> <span class="err">#</span><span class="o"><</span><span class="nb">Object</span><span class="o">></span> <span class="nx">has</span> <span class="nx">no</span> <span class="nx">method</span> <span class="s1">'forEach'</span> +</span></pre></div></div><div class="slide" style="display: none; "><h1>Sytuacje wyjątkowe</h1><p id="line_0">Sytuacje wyjątkowe nie są na tyle wyjątkowe, aby łamać reguły.</p></div><div class="slide" style="display: none; "><h1>Call i Apply</h1><div class="highlight"><pre><span id="line_1"><span class="o">></span> <span class="kd">var</span> <span class="nx">f</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span> <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">arguments</span><span class="p">);</span> <span class="k">return</span> <span class="k">this</span> <span class="p">}</span> +</span><span id="line_2"><span class="o">></span> <span class="kd">var</span> <span class="nx">o</span> <span class="o">=</span> <span class="p">{}</span> +</span><span id="line_3"><span class="o">></span> <span class="nx">o</span><span class="p">.</span><span class="nx">m</span> <span class="o">=</span> <span class="nx">f</span> +</span><span id="line_4"><span class="o">></span> <span class="nx">o</span><span class="p">.</span><span class="nx">m</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">)</span> +</span><span id="line_5"><span class="p">{</span> <span class="s1">'0'</span><span class="o">:</span> <span class="mi">1</span><span class="p">,</span> <span class="s1">'1'</span><span class="o">:</span> <span class="mi">2</span><span class="p">,</span> <span class="s1">'2'</span><span class="o">:</span> <span class="mi">3</span> <span class="p">}</span> +</span><span id="line_6"><span class="p">{</span> <span class="nx">m</span><span class="o">:</span> <span class="p">[</span><span class="nb">Function</span><span class="p">]</span> <span class="p">}</span> +</span><span id="line_7"><span class="o">></span> <span class="nx">f</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">o</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">)</span> +</span><span id="line_8"><span class="p">{</span> <span class="s1">'0'</span><span class="o">:</span> <span class="mi">1</span><span class="p">,</span> <span class="s1">'1'</span><span class="o">:</span> <span class="mi">2</span><span class="p">,</span> <span class="s1">'2'</span><span class="o">:</span> <span class="mi">3</span> <span class="p">}</span> +</span><span id="line_9"><span class="p">{</span> <span class="nx">m</span><span class="o">:</span> <span class="p">[</span><span class="nb">Function</span><span class="p">]</span> <span class="p">}</span> +</span><span id="line_10"><span class="o">></span> <span class="nx">f</span><span class="p">.</span><span class="nx">apply</span><span class="p">(</span><span class="nx">o</span><span class="p">,</span> <span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">])</span> +</span><span id="line_11"><span class="p">{</span> <span class="s1">'0'</span><span class="o">:</span> <span class="mi">1</span><span class="p">,</span> <span class="s1">'1'</span><span class="o">:</span> <span class="mi">2</span><span class="p">,</span> <span class="s1">'2'</span><span class="o">:</span> <span class="mi">3</span> <span class="p">}</span> +</span><span id="line_12"><span class="p">{</span> <span class="nx">m</span><span class="o">:</span> <span class="p">[</span><span class="nb">Function</span><span class="p">]</span> <span class="p">}</span> +</span></pre></div></div><div class="slide" style="display: none; "><h1>Klasa Point</h1><div class="highlight"><pre><span id="line_1"><span class="k">class</span> <span class="nc">Point</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span> +</span><span id="line_2"> <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">):</span> +</span><span id="line_3"> <span class="bp">self</span><span class="o">.</span><span class="n">x</span> <span class="o">=</span> <span class="n">x</span> +</span><span id="line_4"> <span class="bp">self</span><span class="o">.</span><span class="n">y</span> <span class="o">=</span> <span class="n">y</span> +</span><span id="line_5"> +</span><span id="line_6"> <span class="k">def</span> <span class="nf">move</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dx</span><span class="p">,</span> <span class="n">dy</span><span class="p">):</span> +</span><span id="line_7"> <span class="sd">"""Move point by changes dx and dy."""</span> +</span><span id="line_8"> +</span><span id="line_9"> <span class="bp">self</span><span class="o">.</span><span class="n">x</span> <span class="o">+=</span> <span class="n">dx</span> +</span><span id="line_10"> <span class="bp">self</span><span class="o">.</span><span class="n">y</span> <span class="o">+=</span> <span class="n">dy</span> +</span><span id="line_11"> +</span><span id="line_12"> <span class="k">def</span> <span class="nf">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="line_13"> <span class="k">return</span> <span class="s">'<Point(</span><span class="si">%d</span><span class="s">, </span><span class="si">%d</span><span class="s">)>'</span> <span class="o">%</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">x</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">y</span><span class="p">)</span> +</span><span id="line_14"> +</span><span id="line_15"><span class="n">mypoint</span> <span class="o">=</span> <span class="n">Point</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">)</span> +</span><span id="line_16"><span class="n">mypoint</span><span class="o">.</span><span class="n">move</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span> +</span><span id="line_17"><span class="k">print</span> <span class="n">mypoint</span> +</span></pre></div></div><div class="slide" style="display: none; "><h1>create()</h1><div class="highlight"><pre><span id="line_1"><span class="kd">var</span> <span class="nx">create</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">parent</span><span class="p">)</span> <span class="p">{</span> +</span><span id="line_2"> <span class="kd">var</span> <span class="nx">f</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{};</span> +</span><span id="line_3"> <span class="nx">f</span><span class="p">.</span><span class="nx">prototype</span> <span class="o">=</span> <span class="nx">parent</span><span class="p">;</span> +</span><span id="line_4"> <span class="k">return</span> <span class="k">new</span> <span class="nx">f</span><span class="p">();</span> +</span><span id="line_5"><span class="p">};</span> +</span></pre></div></div><div class="slide" style="display: none; "><h1>bind()</h1><div class="highlight"><pre><span id="line_1"><span class="kd">var</span> <span class="nx">bind</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">obj</span><span class="p">,</span> <span class="nx">method</span><span class="p">)</span> <span class="p">{</span> +</span><span id="line_2"> <span class="k">return</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span> +</span><span id="line_3"> <span class="k">return</span> <span class="nx">method</span><span class="p">.</span><span class="nx">apply</span><span class="p">(</span><span class="nx">obj</span><span class="p">,</span> <span class="nx">arguments</span><span class="p">);</span> +</span><span id="line_4"> <span class="p">};</span> +</span><span id="line_5"><span class="p">}</span> +</span></pre></div></div><div class="slide" style="display: none; "><h1>Obiekt nadrzędny</h1><div class="highlight"><pre><span id="line_1"><span class="kd">var</span> <span class="nx">point</span> <span class="o">=</span> <span class="p">{};</span> +</span><span id="line_2"> +</span><span id="line_3"><span class="nx">point</span><span class="p">.</span><span class="nx">__init__</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">x</span><span class="p">,</span> <span class="nx">y</span><span class="p">)</span> <span class="p">{</span> +</span><span id="line_4"> <span class="k">this</span><span class="p">.</span><span class="nx">x</span> <span class="o">=</span> <span class="nx">x</span><span class="p">;</span> +</span><span id="line_5"> <span class="k">this</span><span class="p">.</span><span class="nx">y</span> <span class="o">=</span> <span class="nx">y</span><span class="p">;</span> +</span><span id="line_6"><span class="p">};</span> +</span><span id="line_7"> +</span><span id="line_8"><span class="nx">point</span><span class="p">.</span><span class="nx">move</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">dx</span><span class="p">,</span> <span class="nx">dy</span><span class="p">)</span> <span class="p">{</span> +</span><span id="line_9"> <span class="k">this</span><span class="p">.</span><span class="nx">x</span> <span class="o">+=</span> <span class="nx">dx</span><span class="p">;</span> +</span><span id="line_10"> <span class="k">this</span><span class="p">.</span><span class="nx">y</span> <span class="o">+=</span> <span class="nx">dy</span><span class="p">;</span> +</span><span id="line_11"><span class="p">};</span> +</span></pre></div></div><div class="slide" style="display: none; "><h1>Konstruktor</h1><div class="highlight"><pre><span id="line_1"><span class="kd">var</span> <span class="nx">Point</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span> +</span><span id="line_2"> <span class="nx">instance</span> <span class="o">=</span> <span class="nx">create</span><span class="p">(</span><span class="nx">point</span><span class="p">);</span> +</span><span id="line_3"> <span class="nx">instance</span><span class="p">.</span><span class="nx">__init__</span><span class="p">.</span><span class="nx">apply</span><span class="p">(</span><span class="nx">instance</span><span class="p">,</span> <span class="nx">arguments</span><span class="p">);</span> +</span><span id="line_4"> <span class="k">return</span> <span class="nx">instance</span><span class="p">;</span> +</span><span id="line_5"><span class="p">};</span> +</span></pre></div></div><div class="slide" style="display: none; "><h1>__repr__</h1><div class="highlight"><pre><span id="line_1"><span class="nx">point</span><span class="p">.</span><span class="nx">toString</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span> +</span><span id="line_2"> <span class="k">return</span> <span class="s1">'<Point('</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">x</span> <span class="o">+</span> <span class="s1">', '</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">y</span> <span class="o">+</span> <span class="s1">')>'</span><span class="p">;</span> +</span><span id="line_3"><span class="p">};</span> +</span></pre></div></div><div class="slide" style="display: none; "><h1>Faktoria konstruktorów</h1><div class="highlight"><pre><span id="line_1"><span class="kd">var</span> <span class="nx">make_constructor</span> <span class="p">(</span><span class="nx">parent</span><span class="p">)</span> <span class="p">{</span> +</span><span id="line_2"> <span class="k">return</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span> +</span><span id="line_3"> <span class="kd">var</span> <span class="nx">instance</span> <span class="o">=</span> <span class="nx">create</span><span class="p">(</span><span class="nx">parent</span><span class="p">);</span> +</span><span id="line_4"> <span class="nx">instance</span><span class="p">.</span><span class="nx">__init__</span><span class="p">.</span><span class="nx">apply</span><span class="p">(</span><span class="nx">instance</span><span class="p">,</span> <span class="nx">arguments</span><span class="p">);</span> +</span><span id="line_5"> <span class="k">return</span> <span class="nx">instance</span><span class="p">;</span> +</span><span id="line_6"> <span class="p">};</span> +</span><span id="line_7"><span class="p">};</span> +</span><span id="line_8"> +</span><span id="line_9"><span class="nx">Point</span> <span class="o">=</span> <span class="nx">make_constructor</span><span class="p">(</span><span class="nx">point</span><span class="p">);</span> +</span></pre></div></div><div class="slide" style="display: none; "><h1>Piękne</h1><p id="line_0">Piękne jest lepsze niż brzydkie.</p></div><div class="slide" style="display: none; "><h1>Przecieki w MSIE</h1><div class="highlight"><pre><span id="line_1"><span class="nb">document</span><span class="p">.</span><span class="nx">onload</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span> +</span><span id="line_2"> <span class="kd">var</span> <span class="nx">element</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">getElementById</span><span class="p">(</span><span class="s1">'content'</span><span class="p">);</span> +</span><span id="line_3"> <span class="nx">element</span><span class="p">.</span><span class="nx">onclick</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span> +</span><span id="line_4"> <span class="nx">element</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">background_color</span> <span class="o">=</span> <span class="s1">'pink'</span><span class="p">;</span> +</span><span id="line_5"> <span class="p">};</span> +</span><span id="line_6"><span class="p">};</span> +</span></pre></div><ul id="line_9"><li>element → onclick</li><li>onclick → element</li></ul></div><div class="slide" style="display: none; "><h1>Linkowanie w HTML</h1><div class="highlight"><pre><span id="line_1"><span class="nt"><script </span><span class="na">src=</span><span class="s">"/static/hello.minified.js?v=1234"</span><span class="nt">></script></span> +</span></pre></div></div><div class="slide" style="display: none; "><h1>Require</h1><div class="highlight"><pre><span id="line_1"><span class="kd">var</span> <span class="nx">http</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">'http'</span><span class="p">);</span> +</span><span id="line_2"><span class="kd">var</span> <span class="nx">handler</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">request</span><span class="p">,</span> <span class="nx">response</span><span class="p">)</span> <span class="p">{</span> +</span><span id="line_3"> <span class="nx">response</span><span class="p">.</span><span class="nx">writeHead</span><span class="p">(</span><span class="mi">200</span><span class="p">,</span> <span class="p">{</span><span class="s1">'Content-Type'</span><span class="o">:</span> <span class="s1">'text/plain'</span><span class="p">});</span> +</span><span id="line_4"> <span class="nx">response</span><span class="p">.</span><span class="nx">end</span><span class="p">(</span><span class="s1">'Hello World\n'</span><span class="p">);</span> +</span><span id="line_5"><span class="p">};</span> +</span><span id="line_6"><span class="kd">var</span> <span class="nx">server</span> <span class="o">=</span> <span class="nx">http</span><span class="p">.</span><span class="nx">createServer</span><span class="p">(</span><span class="nx">handler</span><span class="p">);</span> +</span><span id="line_7"><span class="nx">server</span><span class="p">.</span><span class="nx">listen</span><span class="p">(</span><span class="mi">1337</span><span class="p">,</span> <span class="s1">'127.0.0.1'</span><span class="p">);</span> +</span></pre></div></div><div class="slide" style="display: none; "><h1>Źródła</h1><ul id="line_0"><li><a href="http://js4py.rtfd.org/" class="external" title="http://js4py.rtfd.org">http://js4py.rtfd.org</a> – Jonathan Fine</li><li><a href="http://crockford.com/" class="external" title="http://crockford.com">http://crockford.com</a> – Douglas Crockford</li><li>”JavaScript: The Good Parts“ – Douglas Crockford</li><li><a href="https://developer.mozilla.org/" class="external" title="https://developer.mozilla.org">https://developer.mozilla.org</a> – Mozilla</li><li><a href="http://nodejs.org/" class="external" title="http://nodejs.org">http://nodejs.org</a> – Node.js</li></ul></div> +<script src="docs/jquery.js"></script> +<script src="docs/slides.js"></script> +</body></html>
