1
00:00:00,950 --> 00:00:06,390
&nbsp;

2
00:00:06,420 --> 00:00:12,940
ここでは、キーワードthisが宣言されたオブジェクトの外側にあるときに、最初のルールがどのように機能するかを知ったので、これがキーワードの宣言されたオブジェクトの内部にあるときどうなるかを見てみましょう。

3
00:00:12,960 --> 00:00:18,600
&nbsp;

4
00:00:18,660 --> 00:00:26,120
暗黙的またはオブジェクトルールと呼ばれる第2のルールでは、キーワードが宣言されたオブジェクトの内部にあるとき、キーワードthisの値は常に多くの単語であった最も近い親オブジェクトになります。

5
00:00:26,130 --> 00:00:27,100
&nbsp;

6
00:00:27,300 --> 00:00:30,640
スライド上のコードを見て、その意味を見てみましょう。

7
00:00:30,660 --> 00:00:33,590
ここにPersonオブジェクトがありますが、そのキーはファーストネームです。

8
00:00:33,630 --> 00:00:35,910
hiと言って文脈を決めてください。

9
00:00:36,090 --> 00:00:41,350
この関数の中のsay hiメソッドから始めて、文字列の値を返しています。

10
00:00:41,350 --> 00:00:45,960
こんにちは、キーワードのファーストネームプロパティの値に連結されています。

11
00:00:45,960 --> 00:00:52,650
これは、キーワードthisが宣言されたオブジェクトの内部にあることを認識しているので、最も近い親オブジェクトを見てキーワードの値を調べます。

12
00:00:52,740 --> 00:00:55,710
&nbsp;

13
00:00:55,710 --> 00:01:02,640
これは、最も近い親オブジェクトがキーワードの値を意味するperson変数であることがわかります。

14
00:01:02,640 --> 00:01:03,210
&nbsp;

15
00:01:03,210 --> 00:01:07,010
これは人物オブジェクトです。

16
00:01:07,020 --> 00:01:09,520
ここで、コンテキスト決定メソッドを調べてみましょう。

17
00:01:09,540 --> 00:01:11,970
この関数は、trueまたはfalseを返す必要があります。

18
00:01:11,970 --> 00:01:16,260
我々は常にブール値に評価されるトリプルイコールを使用していることに注意してください。

19
00:01:16,260 --> 00:01:18,320
この関数は何を返すと思いますか？

20
00:01:18,330 --> 00:01:19,940
あなたがキーワードを見る場所を考えてみましょう。

21
00:01:19,940 --> 00:01:24,290
これは、宣言されたオブジェクトの内部または外部です。

22
00:01:24,390 --> 00:01:29,850
キーワードthisはpersonオブジェクトの内部にあり、それはpersonオブジェクトと等しいことを意味します。

23
00:01:29,940 --> 00:01:30,780
&nbsp;

24
00:01:30,900 --> 00:01:35,390
したがって、この式は、移動する前に真と評価する必要があります。

25
00:01:35,430 --> 00:01:41,100
もう一度このコードを確認して、クロームコンソールまたはテキストエディタに入れて、何が起こっているかを正確に確認してください。

26
00:01:41,100 --> 00:01:41,840
&nbsp;

27
00:01:42,200 --> 00:01:47,370
今度は、暗黙のルールでは、キーワードthisの値が常に最も近い親オブジェクトになると言っています。

28
00:01:47,400 --> 00:01:48,300
&nbsp;

29
00:01:48,510 --> 00:01:52,000
しかし、ネストされたオブジェクトで少しばかげてしまうものを見てみましょう。

30
00:01:52,500 --> 00:01:53,940
このコードを見てみましょう。

31
00:01:53,970 --> 00:01:58,960
ここではperson変数があることがわかりますが、今回はfirst nameプロパティが呼び出されます。

32
00:01:59,040 --> 00:02:02,700
もう一度hiメソッドがあり、コンテキストメソッドを決定します。

33
00:02:02,700 --> 00:02:06,570
秒を取って、呼び出されたときにそれらの関数が返すものについて考えてみましょう。

34
00:02:06,570 --> 00:02:10,770
ここで、dogという人物オブジェクトに追加のキーがあることに注目してください。

35
00:02:10,890 --> 00:02:14,110
ロバの価値は実際に別のオブジェクトです。

36
00:02:14,190 --> 00:02:19,180
では、dogオブジェクトの内部の入れ子になったオブジェクトを調べてみましょう。

37
00:02:19,200 --> 00:02:24,360
私たちはhelloのキーを持っています。これはHelloという文字列をキーワードと結合して返す関数です。

38
00:02:24,480 --> 00:02:32,130
これは、キーワードの値を決定するための2つのルールを使用して、ビデオを一時停止し、hello関数の中でキーワードの値が何であるか把握しようとします。

39
00:02:32,130 --> 00:02:38,870
&nbsp;

40
00:02:38,880 --> 00:02:40,230
だからあなたは思いつきますか？

41
00:02:40,410 --> 00:02:44,230
これは、人が犬のオブジェクトを参照するキーワードです。

42
00:02:44,280 --> 00:02:45,720
あるいは、グローバルオブジェクトかもしれません。

43
00:02:45,930 --> 00:02:51,090
さて、キーワードthisが宣言されたオブジェクトの内部になければ、グローバルオブジェクトになるという最初のルールに戻りましょう。

44
00:02:51,120 --> 00:02:53,820
&nbsp;

45
00:02:53,820 --> 00:02:58,520
この場合、キーワードthisがPersonという宣言されたオブジェクトの内部にあることがわかります。

46
00:02:58,770 --> 00:03:01,090
そこで、第2のルールに移ります。

47
00:03:01,170 --> 00:03:07,050
第2の規則は、キーワードthisの値が常に最も近い親オブジェクトであることを述べている。

48
00:03:07,050 --> 00:03:11,850
これは、宣言されたオブジェクトが人であっても、ややこしいことです。

49
00:03:11,940 --> 00:03:19,060
say helloメソッドに最も近い親オブジェクトであるDogというオブジェクトがあります。

50
00:03:19,110 --> 00:03:25,680
これで、helloメソッドの中のthisキーワードがdogオブジェクトを参照していることが分かりました。このオブジェクトの値は何ですか？

51
00:03:25,680 --> 00:03:27,530
&nbsp;

52
00:03:27,540 --> 00:03:32,180
say helloメソッドの内部のファーストネーム。

53
00:03:32,610 --> 00:03:37,870
犬オブジェクトにはファーストネームのキーがないので、値は未定義です。

54
00:03:38,160 --> 00:03:42,230
だから、私たちは人の犬を入力してhelloメソッドを呼び出すのはなぜですか？

55
00:03:42,270 --> 00:03:44,830
こんにちは、それが返ってくるのを見ることができます。

56
00:03:44,830 --> 00:03:46,850
こんにちは未定義。

57
00:03:47,580 --> 00:03:54,750
&nbsp;

58
00:03:54,750 --> 00:04:02,450
また、決定コンテキスト関数内のthisキーワードがpersonオブジェクトを参照していないため、dogオブジェクトの内部で決定されたコンテキスト関数がfalseを返すこともわかります。

59
00:04:04,050 --> 00:04:07,760
それでは、どうやってこれを修正するか、私たちのSay helloメソッドを返すようにしたいのですか？

60
00:04:07,770 --> 00:04:14,070
&nbsp;

61
00:04:14,080 --> 00:04:21,840
こんにちは寒いの代わりに未定義のあなたは明示的にキーワードの値を変更するいくつかの方法が必要となり、それは正確に呼び出しが適用され、バインド関数は私たちのために次のビデオで行うことができます。

62
00:04:22,140 --> 00:04:27,990
コールの適用とバインドを使用して、キーワードの値を決定するための3番目のルールが表示されます。

63
00:04:28,060 --> 00:04:29,190
物事は刺激的になっています。

64
00:04:29,190 --> 00:04:30,340
次のビデオで会いましょう。
