回答編集履歴
3
書式変更
answer
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
##### なぜthisをグローバルオブジェクトに固定すると期待通りの結果がでるのでしょうか?
|
2
2
|
|
3
3
|
これは間違っています。
|
4
4
|
```js
|
@@ -7,7 +7,7 @@
|
|
7
7
|
```
|
8
8
|
これでも動作します。`Math.max`は`this`の値を用いないメソッドです。
|
9
9
|
|
10
|
-
|
10
|
+
##### なぜthisをvegetablesに固定すると期待通りの結果(配列のマージ)になるのでしょうか?
|
11
11
|
|
12
12
|
```js
|
13
13
|
//↓このコードの場合、
|
@@ -15,6 +15,9 @@
|
|
15
15
|
//^^^^^^^^^^これが this になるからです。
|
16
16
|
```
|
17
17
|
|
18
|
-
>
|
18
|
+
> 関数がオブジェクトのメソッドとして呼び出されるとき、その this にはメソッドが呼び出されたオブジェクトが設定されます。
|
19
|
+
[this - JavaScript | MDN](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/this#%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%81%AE%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89%E3%81%A8%E3%81%97%E3%81%A6)
|
19
20
|
|
21
|
+
##### maxやpushはそういうふうに作られているから、こういう呼び出し方をすればこういうことができる、ととりあえず理解しとくのが良いでしょうか?
|
22
|
+
|
20
23
|
それでいいと思いますが、cls.prototype.method なのか cls.method なのかで概ね区別できるんじゃないでしょうか?
|
2
表現の修正
answer
CHANGED
@@ -12,7 +12,7 @@
|
|
12
12
|
```js
|
13
13
|
//↓このコードの場合、
|
14
14
|
vegetables.push('celery', 'beetroot');
|
15
|
-
//^^^^^^^^^^これが this
|
15
|
+
//^^^^^^^^^^これが this になるからです。
|
16
16
|
```
|
17
17
|
|
18
18
|
> maxやpushはそういうふうに作られているから、こういう呼び出し方をすればこういうことができる、ととりあえず理解しとくのが良いでしょうか?
|
1
誤字
answer
CHANGED
@@ -17,4 +17,4 @@
|
|
17
17
|
|
18
18
|
> maxやpushはそういうふうに作られているから、こういう呼び出し方をすればこういうことができる、ととりあえず理解しとくのが良いでしょうか?
|
19
19
|
|
20
|
-
それでいいと思いますが、cls.prototype.method なのか cls.method で概ね区別できるんじゃないでしょうか?
|
20
|
+
それでいいと思いますが、cls.prototype.method なのか cls.method なのかで概ね区別できるんじゃないでしょうか?
|