7

Node.js 関数の引数オブ​​ジェクトと混同しています。

次のコードがあるとします。

function x() {
  return arguments;
}

console.log(x(1, 2, 3));

Chrome 開発者ツールでは、配列として返されます。

[1, 2, 3]

しかし、node.jsで異なる結果が得られました:

{ '0': 1, '1': 2, '2': 3 }

どうして?

4

3 に答える 3

6

Chrome の配列ではないオブジェクトの異なる表現が、Node でも JavaScript でも一般的に表示されます。

それから配列が必要な場合は、次のようにします。

var args = Array.prototype.slice.call(arguments, 0);
于 2013-03-29T15:08:35.393 に答える
5

arguments実際には配列ではない魔法の変数です。配列のように動作しますが、配列が持つすべての機能を持っているわけではありません。

このような他のオブジェクトはNodeList、たとえばです。

于 2013-03-29T15:01:01.560 に答える
2
于 2013-03-29T15:03:41.353 に答える