mozilla

Compare Revisions

New in JavaScript 1.7

Change Revisions

Revision 51870:

Revision 51870 by Chuiwenchiu on

Revision 51871:

Revision 51871 by Vedy on

Title:
New in JavaScript 1.7
New in JavaScript 1.7
Slug:
JavaScript/New_in_JavaScript/1.7
JavaScript/New_in_JavaScript/1.7
Tags:
JavaScript, JavaScript_version_overviews
JavaScript, JavaScript_version_overviews
Content:

Revision 51870
Revision 51871
n16    <h2 name=".E4.BD.BF.E7.94.A8_JavaScript_1.7">n16    <h2 name="Using_JavaScript_1.7">
17      使用 JavaScript 1.717      Using JavaScript 1.7
n20      為了使用 JavaScript 1.7 的新功能, 你需要在 HTML 或 XUL 程式碼中特別指定使用 JavaScn20      In order to use the new features of JavaScript 1.7, you nee
>ript 1.7。如下:>d to specify that you wish to use JavaScript 1.7. In HTML or XUL 
 >code, use:
n23 &lt;script type="<b>application/javascript;version=1.7</b>"/&gt;n23 &lt;script type="application/javascript;version=1.7"/&gt;
n26      當你使用 <a href="en/Introduction_to_the_JavaScript_shell">Javan26      When using the <a href="en/Introduction_to_the_JavaScript_s
>Script shell</a>,你需要透過 <code>version()</code> 函數設定你希望使用的版本:>hell">JavaScript shell</a>, you need to set the version you wish 
 >to use using the <code>version()</code> function:
n41      考慮一下使用迭代演算法來計算費伯納西數(Fibonacci):n41      Consider this iterative algorithm that computes Fibonacci n
 >umbers:
42    </p>
43    <pre>42    </p>
43    <pre>
44function do_callback(num){44function do_callback(num) {
n62      這個程式碼在每一次的迭代過程中使用 callback 程序。在這個案例中,每一個費伯納西數都只是簡單的列印到主控台(cn62      This code uses a callback routine to perform operations on 
>onsole)。>each iterative step of the algorithm. In this case, each Fibonacc
 >i number is simply printed to the console.
63    </p>
64    <p>63    </p>
65      Generators 和 iterators 協同運作可以提供更新更好的方式來完成這個工作。讓我們使用 Generat64    <p>
>or 方式來改寫這個程式: 
65      Generators and iterators work together to provide a new, be
 >tter, way to do this. Let's see how the Fibonacci number routine 
 >looks written using a generator:
t84      這個函數包含 <code>yield</code> 關鍵字,是屬於一個 generator。 當你呼叫他時,他的介面參t84      The function containing the <code>yield</code> keyword is a
>數會與實際的參數產生關聯,但是此時他的程式實體並未被執行。取而代之的是回傳一個 generator-iterator。當你每次呼叫> generator. When you call it, its formal parameters are bound to 
> generator-iterator 的<code>next()</code> 時候,會進行一次的迭代演算法運算。每一次迭代的值>actual arguments, but its body isn't actually evaluated. Instead,
>是由 <code>yield</code> 關鍵字所指定。<code>yield</code> 可以想像成 generator-i> a generator-iterator is returned. Each call to the generator-ite
>terator 版本的 <code>return</code>,每一個迭代演算法之間都需要指定邊界條件。每一次你呼叫 <code>>rator's <code>next()</code> method performs another pass through 
>next()</code>, generator 程式碼會繼續從 <code>yield</code> 下面開始執行。>the iterative algorithm. Each step's value is the value specified
 > by the <code>yield</code> keyword. Think of <code>yield</code> a
 >s the generator-iterator version of <code>return</code>, indicati
 >ng the boundary between each iteration of the algorithm. Each tim
 >e you call <code>next()</code>, the generator code resumes from t
 >he statement following the <code>yield</code>.
85    </p>
86    <p>85    </p>
87      你重複的呼叫 generator-iterator 的 <code>next()</code> 直到他滿足你要的結果為86    <p>
>止。在這個範例中,我們可以繼續呼叫 <code>g.next()</code> 來獲得更多的費伯納西數直到滿足我們所要的結果。 
87      You cycle a generator-iterator by repeatedly calling its <c
 >ode>next()</code> method until you reach your desired result cond
 >ition. In this example, we can obtain however many Fibonacci numb
 >ers we want by continuing to call <code>g.next()</code> until we 
 >have the number of results we want.

Back to History