首頁 > web前端 > js教程 > 關於閉包問題的詳細介紹(二)

關於閉包問題的詳細介紹(二)

零下一度
發布: 2017-06-26 10:53:32
原創
1105 人瀏覽過

rreeerrreerreee

<span style="font-size: 15px"><code>我在整理闭包问题的时候,看到一道前端面试题<br>for (var i = 0; i < 10; i++) {
  setTimeout(function() {
    console.log(i);
    }, 0);
}<br>了解 js 的异步机制的都知道,输出结果是: <code>10 10 10 ... 10<br></code>然后面试官又问  如果希望得到的是<code>0 1 2 ... 9</code>,如何能够解决这个问题<br><br>我脑海想到的第一个解决方法就是用let代替var使for形成块级作用域;<br><br>第二个解决方法,使setTimeout函数立即执行,形成同步输出:<br></code></span>
登入後複製
rrree
<span style="font-size: 15px"><code>for (var i=0; i < 10; i++) {
  (function (temp) {
    setTimeout(function() {
      console.log(temp);
    }, 0);
  })(i);
}<br><br>如果有其他解决方法,亲爱的朋友们可以评论补充<br><br>再补充一道闭包问题:<br></code></span>
登入後複製
rree

以上是關於閉包問題的詳細介紹(二)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板