1
00:00:00,810 --> 00:00:06,000
&nbsp;

2
00:00:06,030 --> 00:00:12,060
&nbsp;

3
00:00:12,090 --> 00:00:16,980
この最後のビデオでは、キーワードの値を決定するための2番目のルールを調べます。暗黙のルール暗黙のルールでは、キーワードが宣言されたオブジェクトの内部にあるとき、その値は常に最も近い親オブジェクトになります。

4
00:00:16,980 --> 00:00:21,780
私たちが使用しているこれらのルールに注意することの1つは、JavaScript仕様の公式な部分ではないため、そこでは見つからないでしょう。

5
00:00:21,990 --> 00:00:23,710
&nbsp;

6
00:00:23,730 --> 00:00:28,910
これらのルールは、キーワードの価値がどのようなものかを把握するのに役立ちます。

7
00:00:29,310 --> 00:00:34,740
最後のビデオの終わりに、私たちは、Say helloメソッドで、このキーワードのコンテキストが予期せず変更されたときの例を見ました。

8
00:00:35,340 --> 00:00:36,850
&nbsp;

9
00:00:36,940 --> 00:00:44,760
ファーストネームのプロパティは未定義になりました。これは、現在、このキーワードがdogオブジェクトを参照していたためです。

10
00:00:44,760 --> 00:00:50,280
だから、明示的にthisキーワードの値を設定したいので、dogオブジェクトではなくpersonオブジェクトにすることができます。

11
00:00:50,280 --> 00:00:53,210
&nbsp;

12
00:00:53,220 --> 00:00:56,250
これが第3のルールが入る場所です。

13
00:00:56,250 --> 00:01:01,800
&nbsp;

14
00:01:01,830 --> 00:01:08,250
呼び出し適用またはバインド・メソッドが表示されているときは、キーワードを適用およびバインドを呼び出す最初のパラメータとして設定するため、キーワードの値を簡単に判別できます。

15
00:01:08,700 --> 00:01:11,150
これらの3つの方法を比較して比較する前に、

16
00:01:11,220 --> 00:01:17,610
&nbsp;

17
00:01:17,610 --> 00:01:24,740
覚えておかなければならないことの1つは、文字列ブール値やオブジェクトのような他のデータ型ではなく、関数によってのみ使用できる関数applyとbindまたはメソッドでのみ使用できることです。

18
00:01:24,750 --> 00:01:29,640
私たちが話し合う最初の方法は、callメソッドの最初の引数を、キーワードthisの値が何であれ欲しいものにすることです。

19
00:01:29,640 --> 00:01:32,670
&nbsp;

20
00:01:32,670 --> 00:01:37,370
これは通常このARGと呼ばれ、必要なものに設定できます。

21
00:01:37,530 --> 00:01:43,350
&nbsp;

22
00:01:43,350 --> 00:01:49,020
&nbsp;

23
00:01:49,020 --> 00:01:50,550
このARGの後の引数は、関数の中に渡したいパラメータです。これは、キーワードのコンテキストを混乱させる音の内部で変更していますが、例を見てもわかります。

24
00:01:50,550 --> 00:01:55,620
また、関数は無限の引数を持つことができるので、呼び出しを使用するときは、それぞれの引数をカンマで区切ります。

25
00:01:55,680 --> 00:01:57,080
&nbsp;

26
00:01:57,150 --> 00:02:03,230
最後に、関数が直ちに呼び出される関数に対して呼び出しメソッドが使用されるとき。

27
00:02:03,230 --> 00:02:04,600
さあ、プロットに移りましょう。

28
00:02:04,920 --> 00:02:11,940
適用は、呼び出しとほとんど同じですが、適用は、呼び出すのと同じように、最初に2つのパラメータを取るだけです。これは、キーワードとなる値が欲しいものです。

29
00:02:11,940 --> 00:02:15,630
&nbsp;

30
00:02:15,630 --> 00:02:17,700
このARGと呼んでいます。

31
00:02:17,880 --> 00:02:23,190
2番目の引数は、キーワードthisの値を変更する関数に渡す引数の配列です。

32
00:02:23,190 --> 00:02:25,600
&nbsp;

33
00:02:25,680 --> 00:02:27,060
今度はバインドを調べましょう。

34
00:02:27,330 --> 00:02:32,490
バインドは、関数をすぐに呼び出す代わりに、呼び出しとほとんど同じです。

35
00:02:32,550 --> 00:02:35,070
Bindは関数定義を返します。

36
00:02:35,490 --> 00:02:38,410
関数定義の意味をすばやく解そう。

37
00:02:38,430 --> 00:02:43,270
私は最初の関数と呼ばれる関数を作成し、それは文字列helloを返すつもりです。

38
00:02:43,650 --> 00:02:47,570
私が関数を呼び出すのではなく、私が作成した変数を調べてください。

39
00:02:47,760 --> 00:02:50,480
私は関数定義を返します。

40
00:02:50,490 --> 00:02:55,900
バインドは非常に強力な関数です。これは、キーワードthisの値が異なる関数を見て、後で呼び出すことができるからです。

41
00:02:55,980 --> 00:02:59,710
&nbsp;

42
00:02:59,850 --> 00:03:05,040
バインドは、set

43
00:03:05,100 --> 00:03:08,720
timeoutのような非同期コードを扱うときには非常に有用であり、courieringのようなより高度なプログラミング手法のビルディングブロックです。

44
00:03:08,790 --> 00:03:15,180
これらの3つのメソッドを簡単に見てみましょう。コールの適用とバインドは、キーワードの値を明示的に述べるために使用されます。

45
00:03:15,180 --> 00:03:15,780
&nbsp;

46
00:03:15,810 --> 00:03:21,000
これは、これが参照するキーワードが完全に制御されるようにするために使用します。

47
00:03:21,300 --> 00:03:27,480
したがって、最初の2つのルールよりも優先されます。callおよびapplyは、呼び出された関数を即座に呼び出す一方、bindの代わりにキーワードの値を使用して新しい関数の定義を返します。

48
00:03:27,600 --> 00:03:32,940
&nbsp;

49
00:03:32,940 --> 00:03:36,640
これは明示的に最終的に呼び出しとバインドを設定します。

50
00:03:36,660 --> 00:03:42,430
無限の数のパラメータを除いて、適用するのは次のビデオで2つしか取りません。

51
00:03:42,450 --> 00:03:48,150
呼び出しの例と、これを使用してキーワードの値を明示的に設定する方法を見ていきます。

52
00:03:48,320 --> 00:03:48,750
それを見て
