javascript - 洩漏參數
怪我咯
怪我咯 2017-07-05 10:42:40
0
1
863

誰可以幫忙解釋一哈 Leaking arguments 的概念

<script>

        Benchmark.prototype.setup = function() {

          
  function otherFunc(a, b) {
    return a + b;
  }
  
  function withArguments(x) {
    var a = arguments;
    return otherFunc.apply(x, Array.prototype.slice.call(a, 1));
  }
  
  function withCopy(x) {
    var a = [];
    var i, len = arguments.length;
    for (i = 1; i < len; i += 1) {
      a[i - 1] = arguments[i];
    }
    return otherFunc.apply(x, a);
  }
怪我咯
怪我咯

走同样的路,发现不同的人生

全部回覆(1)
某草草

傳遞arguments給任何方法稱為leaking arguments

不幸的是,傳遞arguments給任何參數,將導致Chrome和Node中使用的V8引擎跳過對其的優化,這也將使性能相當慢。

withArguments 不會被V8優化,withCopy 那種 建議線上環境使用,雖然囉嗦。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板