<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          怎么樣才算是精通 JavaScript?

          共 608字,需瀏覽 2分鐘

           ·

          2022-02-09 09:04

          假若你能寫出一個完全符合 ES5 spec 的 Function.prototype.bind 的話,你就可以說是精通了。

          首先我必須做一個假設,那就是我們說的是 JavaScript 這門語言本身,而不考慮任何和瀏覽器相關(guān)的事情。那也就是說,只要能在 Node.js 中跑起來就行,沒有任何的 DOM 或 BOM API,也沒有 JavaScript 版本兼容性問題。(基于這個假設,很多答案列舉的是「什么不是 JavaScript」。)

          為什么選擇 Function.prototype.bind?因為假若你能完全了解它的每一個細節(jié),你就了解 JavaScript Function 的一切了。Function 的本質(zhì)是什么,什么是 closure,如何用 Function.prototype.apply 改變 this,為什么要改變 prototype 引用。如果這些問題有一個你搞不明白,你都寫不出 Function.prototype.bind。此外,如果你真的認真讀 ES5 了,你就知道要完全符合 spec 是不可能的(反回結(jié)果要求無 prototype 但使用時相當于擁有原 prototype),只能保證兼容同時放棄一些細節(jié)。

          如果你能如此了解 Function,我覺得 setTimeout 之類的也十分了解吧,所以我通常用 Function.prototype.bind 來做 benchmark。
          瀏覽 24
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日韩毛片在线观看 | 亚洲午夜成人天堂精品 | 久久青榴视频 | 夜夜干天天撸 | 大香蕉尹在线 |