回答編集履歴
2
タイプミス修正
answer
CHANGED
@@ -65,7 +65,7 @@
|
|
65
65
|
ちょっと簡単に注釈を加えておきます。
|
66
66
|
|
67
67
|
unauさんがおっしゃっている通り「JavaScript の関数は、関数オブジェクトです」これは正しいことで
|
68
|
-
JavaScriptのデータは数値、文字列、論理値、null、undefined(+
|
68
|
+
JavaScriptのデータは数値、文字列、論理値、null、undefined(+ES6からのSymbol)以外すべて
|
69
69
|
オブジェクトなのですが、その中で
|
70
70
|
- 「オブジェクト」は値を収める名前付きコンテナ
|
71
71
|
- 「関数」はアプリケーションを実行可能にする手続き
|
1
修正と追記
answer
CHANGED
@@ -1,8 +1,5 @@
|
|
1
1
|
ちょっと補足的に…
|
2
2
|
|
3
|
-
qaz3330さんは関数とオブジェクトがごっちゃになっているのではないかな、と感じたので
|
4
|
-
その部分について。
|
5
|
-
|
6
3
|
###メソッドは「オブジェクトに関連付けられた関数」です。
|
7
4
|
例題として提示されているコード
|
8
5
|
```
|
@@ -37,7 +34,9 @@
|
|
37
34
|
```
|
38
35
|
となっているはずではないでしょうか?
|
39
36
|
このfooというオブジェクトの中で、プロパティとして宣言されている関数bar,bazが「メソッド」です。
|
37
|
+
(※オブジェクトリテラルのプロパティとして関連付けられた関数)
|
40
38
|
|
39
|
+
|
41
40
|
**メソッドの定義**
|
42
41
|
[https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Working_with_Objects#Defining_methods](https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Working_with_Objects#Defining_methods)
|
43
42
|
|
@@ -47,7 +46,7 @@
|
|
47
46
|
オブジェクト指向でコードを記述すると後者になる
|
48
47
|
|
49
48
|
といった感じです。
|
50
|
-
どちらの記述にもメリット、デメリットがあり、そのプロジェクトの環境によって
|
49
|
+
どちらの記述にもメリット、デメリットがあり、そのプロジェクトの規模や環境によって
|
51
50
|
どちらが適しているかも変わってきます。
|
52
51
|
|
53
52
|
「関数型プログラミング オブジェクト指向プログラミング」で検索してみると、もう少し詳しく分かるかもしれません(ただ、他の言語のものが多々見つかるかもですが)
|
@@ -55,4 +54,21 @@
|
|
55
54
|
> バージョンやフレームワークによって使えない場合があるのかどうか
|
56
55
|
|
57
56
|
特にありません。
|
58
|
-
ただ、オブジェクト指向は慣れ
|
57
|
+
ただ、オブジェクト指向でのコーディングは慣れるまで、ちょっと難しいと感じるかも…というのが個人的な感覚です。
|
58
|
+
|
59
|
+
---
|
60
|
+
|
61
|
+
**追記**
|
62
|
+
自分で書いておきながら、逆に混乱を招く回答だったかも…と思い、ところどころ変えました。。
|
63
|
+
|
64
|
+
「関数」と「オブジェクト」という言葉も混乱を招きやすいので、
|
65
|
+
ちょっと簡単に注釈を加えておきます。
|
66
|
+
|
67
|
+
unauさんがおっしゃっている通り「JavaScript の関数は、関数オブジェクトです」これは正しいことで
|
68
|
+
JavaScriptのデータは数値、文字列、論理値、null、undefined(+ES&からのSymbol)以外すべて
|
69
|
+
オブジェクトなのですが、その中で
|
70
|
+
- 「オブジェクト」は値を収める名前付きコンテナ
|
71
|
+
- 「関数」はアプリケーションを実行可能にする手続き
|
72
|
+
- メソッドは「オブジェクトに関連付けられた関数」
|
73
|
+
|
74
|
+
として考えるのが妥当かと思います。
|