1
00:00:00,300 --> 00:00:06,060
新しいキーワードを使用すると、donder

2
00:00:06,150 --> 00:00:10,310
produというコンストラクタ関数から作成されたオブジェクトにプロパティが追加されることがわかりました。

3
00:00:10,560 --> 00:00:14,780
このプロパティは、コンストラクタ関数のプロトタイププロパティにリンクします。

4
00:00:15,330 --> 00:00:21,120
しかし、このプロトタイププロパティには、プロトタイププロパティがどのような値を持つかは、メソッドとプロパティを配置できるオブジェクトです。

5
00:00:21,120 --> 00:00:23,440
&nbsp;

6
00:00:23,520 --> 00:00:30,090
これらのメソッドとプロパティは、そのコンストラクタ関数から作成された任意のオブジェクトによって共有され、アクセス可能です。

7
00:00:30,090 --> 00:00:30,770
&nbsp;

8
00:00:30,780 --> 00:00:37,710
この例では、呼び出されるプロトタイプにプロパティを追加することはinstructorであり、値をtrueに設定する新しいキーワードが使用されています。

9
00:00:38,010 --> 00:00:40,470
&nbsp;

10
00:00:40,470 --> 00:00:46,080
このコンストラクタからnewキーワードを使用して作成されたすべてのオブジェクトは、is instrにアクセスできます。

11
00:00:46,080 --> 00:00:47,910
プロパティ。

12
00:00:48,450 --> 00:00:49,920
しかし、どのように世界でそれが起こったのですか？

13
00:00:50,130 --> 00:00:56,310
プロトタイプオブジェクトの上にプロパティを追加しました。突然2つの一見無関係なオブジェクトのすべてがそのオブジェクトにアクセスできます。

14
00:00:56,340 --> 00:00:58,610
&nbsp;

15
00:00:58,620 --> 00:01:01,080
答えはプロトコルの下にあります。

16
00:01:01,380 --> 00:01:08,510
これらのオブジェクトは人のドットプロトタイプへのリンクを持っているため、内部には何もアクセスできません。

17
00:01:08,520 --> 00:01:15,260
実際には、これは実際にjavascriptがオブジェクトのメソッドとプロパティを見つける正確な方法です。

18
00:01:15,450 --> 00:01:19,130
私たちが今説明したのは、プロトタイプチェーンと呼ばれるものです。

19
00:01:19,350 --> 00:01:21,410
それについてもう少し話しましょう。

20
00:01:21,510 --> 00:01:27,510
私たちは、人のプロトタイプオブジェクトにプロパティを追加したときに、新しいキーワードを使用してそのコンストラクタ関数によって作成されたオブジェクトからアクセス可能であることを見ました。

21
00:01:27,510 --> 00:01:31,120
&nbsp;

22
00:01:31,470 --> 00:01:37,110
私たちは、それが可能な理由は、javascriptがメソッドとプロパティを探す方法のためだと言いました。

23
00:01:37,140 --> 00:01:38,210
&nbsp;

24
00:01:38,490 --> 00:01:40,110
例を見てみましょう。

25
00:01:40,110 --> 00:01:44,920
Rという変数を作成し、それを空の配列に設定します。

26
00:01:44,940 --> 00:01:48,250
私が実際にしたのは、新しい配列を書くための略語でした。

27
00:01:48,510 --> 00:01:53,770
私は配列と呼ばれるjavascriptに組み込まれたコンストラクタを使用し、それから新しいオブジェクトを満たしています。

28
00:01:53,820 --> 00:01:59,400
また、javascriptでは、配列の最後に何かを追加するPushというメソッドが配列に含まれていることもわかります。

29
00:01:59,430 --> 00:02:00,450
&nbsp;

30
00:02:00,660 --> 00:02:05,120
しかし、このプッシュ方法はどこで定義されていますか？また、javascriptはどこでそれを見つけるのかを知っています。

31
00:02:05,130 --> 00:02:08,060
答えはDunder Pratoです。

32
00:02:08,510 --> 00:02:09,250
それをキャンセルしましょう。

33
00:02:09,250 --> 00:02:09,640
D'oh。

34
00:02:09,660 --> 00:02:17,070
R変数を見ると、このオブジェクトはすべてlenthというプロパティを持っていますが、プッシュメソッドはどこから来るのでしょうか。

35
00:02:17,070 --> 00:02:18,090
&nbsp;

36
00:02:18,420 --> 00:02:23,250
さて、この変数のDunder Pratoが何であるかを調べてみましょう。

37
00:02:23,250 --> 00:02:31,590
Prato

38
00:02:31,680 --> 00:02:35,120
tripleの下にあることを示すことで、レーダーのプロトタイプが真であると評価できるのは、配列のドットプロトタイプです。

39
00:02:35,130 --> 00:02:40,320
だから、javascriptがメソッドとプロパティを見つける方法は、オブジェクトを見ることであり、探しているメソッドやプロパティが見つからない場合は、そのオブジェクトdonder

40
00:02:40,320 --> 00:02:46,020
protoに行きます。

41
00:02:46,020 --> 00:02:49,810
これは実際にプロパティまたはメソッドが見つかるまで起こり続けます。

42
00:02:49,950 --> 00:02:56,010
そして、もしそれが見つからなければ、式は未定義と評価されます。これは、javascriptの別の例でこれをさらに見ることができます。

43
00:02:56,010 --> 00:02:58,260
&nbsp;

44
00:02:58,260 --> 00:03:04,800
すべてのオブジェクトにはhas has

45
00:03:05,160 --> 00:03:08,370
ownプロパティと呼ばれるメソッドがあり、プロパティのhasメソッドのパラメータとして指定されたプロパティがオブジェクトにある場合はtrueを返します。

46
00:03:08,430 --> 00:03:09,600
どういう意味ですか。

47
00:03:09,630 --> 00:03:12,300
場合によっては、コード例が1000語の価値がある場合もあります。

48
00:03:12,300 --> 00:03:15,670
私たちの変数に戻りましょう。

49
00:03:15,750 --> 00:03:22,170
変数が長さの独自のプロパティを持っているかどうかを調べようとしますが、このメソッドはどこに配置されていますか。

50
00:03:22,170 --> 00:03:23,460
&nbsp;

51
00:03:23,460 --> 00:03:26,550
私たちの変数をコンソールドットDIRで見てみましょう。

52
00:03:26,640 --> 00:03:30,800
Diyarと入力するだけで、ここにはないようです。

53
00:03:31,080 --> 00:03:32,680
では、javascriptは何をしますか？

54
00:03:32,700 --> 00:03:39,240
それはプロトタイプチェーンを上って、次のものを見つけると、Pratoの下のものがオブジェクトプロトタイプであることがわかります。

55
00:03:39,240 --> 00:03:41,090
&nbsp;

56
00:03:41,310 --> 00:03:43,810
そして、ここにその方法が見出されます。

57
00:03:44,010 --> 00:03:47,040
ダイアグラムでも同様に説明できます。

58
00:03:47,040 --> 00:03:51,150
再び円は関数であり、四角はオブジェクトです。

59
00:03:51,150 --> 00:03:56,220
ここでは、レーダープロトタイプのPratoを寄贈したR変数があります。

60
00:03:56,220 --> 00:04:03,150
アレイアッププロトタイプもオブジェクトであり、オブジェクトプロトタイプを指す独自の寄稿者Pratoがあり、javascript内のすべてのオブジェクトにプロトタイプのオブジェクトが含まれています。

61
00:04:03,720 --> 00:04:08,840
&nbsp;

62
00:04:08,880 --> 00:04:15,360
そこには、プロトタイプがヌルであるオブジェクトのDunder

63
00:04:15,660 --> 00:04:19,480
Pratoから来た独自のプロパティがあり、プロトタイプチェーンが停止する場所があります。

64
00:04:19,500 --> 00:04:25,170
要約すると、javascriptがプロトタイプチェーンを使用してメソッドとプロパティを見つける方法を分析すると、javascriptがオブジェクトをどのように見て、探しているメソッドやプロパティが存在するかを確認しました。

65
00:04:25,170 --> 00:04:30,170
&nbsp;

66
00:04:30,330 --> 00:04:36,190
そうでなければ、それはそのオブジェクトDondre Pratoに行き、次のビデオに別のDondreプログラムがなくなるまで繰り返す。

67
00:04:37,140 --> 00:04:38,040
&nbsp;

68
00:04:38,070 --> 00:04:42,710
プロトタイプのプロパティの価値とエクササイズの実践についてもっと詳しく説明します。

69
00:04:42,720 --> 00:04:43,420
私たちを参照してください
