Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <table class="highlighttable">
- <tr>
- <td class="linenos" >
- <div class="linenodiv">
- <pre><code class="language-js" data-lang="js" > 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22</code></pre></div></td>
- <td class="code" >
- <div class="highlight" >
- <pre><span class="c1" >// The expression:</span>
- <span class="kd">var</span> <span class="nx">side</span> <span class="o">=</span> <span class="mi">10</span><span class="p">;</span>
- <span class="kd">var</span> <span class="nx">squareArea</span> <span class="o">=</span> <span class="nx">side</span> <span class="o">*</span> <span class="nx">side</span><span class="p">;</span>
- <span class="nx">print</span><span class="p">(</span><span class="nx">squareArea</span><span class="p">);</span>
- <span class="c1">// Becomes:</span>
- <span class="kd">var</span> <span class="nx">squareAreaAbstraction</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">side</span><span class="p">)</span> <span class="p">{</span>
- <span class="kd">var</span> <span class="nx">result</span> <span class="o">=</span> <span class="nx">createPromise</span><span class="p">();</span>
- <span class="nx">fulfil</span><span class="p">(</span><span class="nx">result</span><span class="p">,</span> <span class="nx">side</span> <span class="o">*</span> <span class="nx">side</span><span class="p">);</span>
- <span class="k">return</span> <span class="nx">result</span><span class="p">;</span>
- <span class="p">};</span>
- <span class="kd">var</span> <span class="nx">printAbstraction</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">squareArea</span><span class="p">)</span> <span class="p">{</span>
- <span class="kd">var</span> <span class="nx">result</span> <span class="o">=</span> <span class="nx">createPromise</span><span class="p">();</span>
- <span class="nx">fulfil</span><span class="p">(</span><span class="nx">result</span><span class="p">,</span> <span class="nx">print</span><span class="p">(</span><span class="nx">squareArea</span><span class="p">));</span>
- <span class="k">return</span> <span class="nx">result</span><span class="p">;</span>
- <span class="p">}</span>
- <span class="kd">var</span> <span class="nx">sidePromise</span> <span class="o">=</span> <span class="nx">createPromise</span><span class="p">();</span>
- <span class="kd">var</span> <span class="nx">squareAreaPromise</span> <span class="o">=</span> <span class="nx">depend</span><span class="p">(</span><span class="nx">sidePromise</span><span class="p">,</span> <span class="nx">squareAreaAbstraction</span><span class="p">);</span>
- <span class="kd">var</span> <span class="nx">printPromise</span> <span class="o">=</span> <span class="nx">depend</span><span class="p">(</span><span class="nx">squareAreaPromise</span><span class="p">,</span> <span class="nx">printAbstraction</span><span class="p">);</span>
- <span class="nx">fulfil</span><span class="p">(</span><span class="nx">sidePromise</span><span class="p">,</span> <span class="mi">10</span><span class="p">);</span>
- </pre></div>
- </td></tr></table>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement