为了账号安全,请及时绑定邮箱和手机立即绑定

Leaking arguments

Leaking arguments

富国沪深 2018-11-20 18:15:16
谁可以帮忙解释一哈 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 回答

?
温温酱

TA贡献1752条经验 获得超4个赞

传递arguments给任何方法被称为leaking arguments

不幸的是,传递arguments给任何参数,将导致Chrome和Node中使用的V8引擎跳过对其的优化,这也将使性能相当慢。

withArguments 不会被V8优化,withCopy 那种 建议线上环境使用,虽然啰嗦。


查看完整回答
反对 回复 2018-12-29
  • 1 回答
  • 0 关注
  • 525 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信