質問するログイン新規登録

回答編集履歴

1

Rest parameters

2017/11/18 14:36

投稿

think49
think49

スコア18194

answer CHANGED
@@ -26,6 +26,12 @@
26
26
  function calcSum3 (n1, n2, n3){
27
27
  return n1 + n2 + n3;
28
28
  }
29
+
30
+ console.log(calcSum(1)); // 1
31
+ console.log(calcSum(1, 2)); // 2
32
+ console.log(calcSum(1, 2, 3)); // 4
33
+ console.log(calcSum(1, 2, 3, 4)); // Error
34
+ console.log(calcSum()); // Error
29
35
  ```
30
36
 
31
37
  ここで重要なのは、
@@ -37,4 +43,11 @@
37
43
  であり、最低一つの引数を要求する事が明確になっている点です。
38
44
  `arguments` を使って実引数を参照する事で、 `Function#length` の値をコントロール出来ます。
39
45
 
46
+ なお、ES6 の **Rest parameters** で同様の実装をするには、次のように書きます。
47
+
48
+ ```JavaScript
49
+ function calcSum (n1, ...n) {}
50
+ console.log(calcSum.length); // 1
51
+ ```
52
+
40
53
  Re: uer03108 さん