suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Javascript – Undichte Argumente

Wer kann helfen, das Konzept des „Leaking Arguments“ zu erklären?

<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);
  }
怪我咯怪我咯2697 Tage vor862

Antworte allen(1)Ich werde antworten

  • 某草草

    某草草2017-07-05 10:44:40

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

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

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

    Antwort
    0
  • StornierenAntwort