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

回答編集履歴

2

必須引数の位置に対する流儀

2019/07/25 09:43

投稿

think49
think49

スコア18194

answer CHANGED
@@ -8,15 +8,28 @@
8
8
 
9
9
  > こうした書き方はJS文化的に一般的なのでしょうか
10
10
 
11
- 化」で一括りにするものではないと思いますが、**私は**好ましくない書き方だと思います。
11
+ 化」で一括りにするものではないと思いますが、**私は**好ましくない書き方だと思います。
12
- `new Idea` は「callback = 必須」「path = 任意」のよなので、ECMAScript のビルトイン関の慣習とし
12
+ 引数数にって、第一引数のタイプが変わるのは複雑だけなので、必須引を前に持っきて第二引数以降をオプションにする方が分かりやすいと私は思います。
13
13
 
14
14
  ```JavaScript
15
15
  new Idea(callback, path);
16
16
  ```
17
17
 
18
- 順番で引を定義します。
18
+ ECMAScript ビルトイン関にも同様の思想があり、リファレンスでは下記のように表現される事があります。ます。
19
19
 
20
+ ```JavaScript
21
+ Idea(callback [, path])
22
+ ```
23
+
24
+ 前述の多重定義では、下記のようになり、
25
+
26
+ ```JavaScript
27
+ Idea(callback)
28
+ Idea(path, callback)
29
+ ```
30
+
31
+ 解説的にも学習コスト的にも効率が悪いと感じます。
32
+
20
33
  ### callback(null, ideas, this)
21
34
 
22
35
  > ```JavaScript

1

表現の修正

2019/07/25 09:43

投稿

think49
think49

スコア18194

answer CHANGED
@@ -1,6 +1,6 @@
1
1
  ### 多重定義
2
2
 
3
- > コンストラクタで無理やり各引数の値をnullにしたりcallback=pathにしたりしているのは、JavaScriptではコンストラクタを複数作って引数の型や数で使い分けるような機能がないからでしょうか?また、
3
+ > コンストラクタで無理やり各引数の値をnullにしたりcallback=pathにしたりしているのは、JavaScriptではコンストラクタを複数作って引数の型や数で使い分けるような機能がないからでしょうか?
4
4
 
5
5
  私の知る範囲では、現在のJavaScript(ECMAScript)に[多重定義](https://ja.wikipedia.org/wiki/%E5%A4%9A%E9%87%8D%E5%AE%9A%E7%BE%A9)はありません。
6
6