回答編集履歴

2

[解決策2] コードで説明する

2019/04/24 12:35

投稿

think49
think49

スコア18162

test CHANGED
@@ -18,7 +18,7 @@
18
18
 
19
19
 
20
20
 
21
- ### 解決策
21
+ ### [解決策1] 外部サイトで全てを説明する
22
22
 
23
23
 
24
24
 
@@ -52,6 +52,86 @@
52
52
 
53
53
 
54
54
 
55
+ ### [解決策2] コードで説明する
56
+
57
+
58
+
59
+ 真に確実性を追求するのであれば、**独自用語を使わずにコードで説明**が最良と思います。
60
+
61
+ 例えば、次のように説明します。
62
+
63
+
64
+
65
+ ---
66
+
67
+
68
+
69
+ ```JavaScript
70
+
71
+ function sample (object) {
72
+
73
+ object.a = 2;
74
+
75
+ object = [];
76
+
77
+ }
78
+
79
+
80
+
81
+ var object = {a: 1};
82
+
83
+
84
+
85
+ console.log(JSON.stringify(object)); // {"a":1}
86
+
87
+ sample(object);
88
+
89
+ console.log(JSON.stringify(object)); // {"a":2}
90
+
91
+ ```
92
+
93
+
94
+
95
+ JavaScriptでは**オブジェクトのプロパティ書き換えが共有される**為、2回目のコンソール出力では、関数`sample`でプロパティ書き換えされた後の値が出力されます。
96
+
97
+ しかし、**変数は共有されない**為、2回目のコンソール出力で `[]` が出力される事はありません。
98
+
99
+ (2019/04/24現在のECMAScript仕様においては、いわゆる**参照渡し**は存在していません)
100
+
101
+
102
+
103
+ ---
104
+
105
+
106
+
107
+ コードに付随して日本語の範囲でロジックを説明してやれば祖語は発生しません。
108
+
109
+ 最終行では言葉(参照渡し)を使ってしまっていますが、これは他所サイトの説明を読んで誤解されない為の配慮であり、自分の説明を相手に伝える目的のみであれば不要な一文です。
110
+
111
+
112
+
113
+ ちなみに、既存の概念であってもこの方法は有効だと私は考えています。
114
+
115
+ 質問者の中には既存の概念を間違えて覚えている方がおり、そういう方に言葉で説明すると、間違った概念の上で解釈してしまいます。
116
+
117
+ ですので、私はよく**言葉ではなく、コードで説明して下さい**と主張しています。
118
+
119
+
120
+
121
+ ※余談ですが、ロジックを頭の中で組み立てる時には、日本語を使わずにほぼコードだけで考えている自分がいます。
122
+
123
+ コード<->日本語の変換時間がロスになっていて、コードだけで考える方が思考が加速して楽しい。
124
+
125
+ 私にとっては「コード」が主役で「言葉」は無くても困らないもの。
126
+
127
+ だから、新しい内容を覚える際には「専門用語」よりも「原理」を先に覚えます。
128
+
129
+ 専門用語は原理を他人に説明するのに少しだけ時間を節約できる効果がありますが、自分が覚える分にはなくても困りません。
130
+
131
+ 他人に説明するには、世界共通語の「コード」で説明すればいいので、「専門用語」の優先順位は低くなっています。
132
+
133
+
134
+
55
135
  ### 言語の違い
56
136
 
57
137
 
@@ -66,4 +146,12 @@
66
146
 
67
147
 
68
148
 
149
+ ### 更新履歴
150
+
151
+
152
+
153
+ - 2019/04/24 21:35 「[解決策2] コードで説明する」を追記しました
154
+
155
+
156
+
69
157
  Re: raccy さん

1

typo修正

2019/04/24 12:35

投稿

think49
think49

スコア18162

test CHANGED
@@ -18,7 +18,7 @@
18
18
 
19
19
 
20
20
 
21
- ##" 解決策
21
+ ### 解決策
22
22
 
23
23
 
24
24