1
00:00:00,590 --> 00:00:02,100
我歡迎回來。

2
00:00:02,100 --> 00:00:04,480
所以這個教訓是完全可選的。

3
00:00:04,770 --> 00:00:06,660
這是一個獎勵的一點點。

4
00:00:06,690 --> 00:00:09,810
這是真正的東西是有點意思。

5
00:00:09,840 --> 00:00:13,080
這就是為什麼我在它展示給你，但它不是必不可少的課程。

6
00:00:13,080 --> 00:00:18,610
而且我們要談論的foreach如何工作，我們要建立我們自己的每個版本。

7
00:00:18,690 --> 00:00:25,470
所以，我們要談你是如何編寫一個函數，它接受一個函數作為參數，然後執行它內部的功能。

8
00:00:25,470 --> 00:00:27,620
所以，再一次完全可選的。

9
00:00:27,720 --> 00:00:41,250
使其成為可選的另一個原因是，它是一個有點更先進，我不想嚇唬大家，我不希望你覺得不好，如果是，如果它是混亂給你，因為它是混亂的，往往需要多次重複這個的。

10
00:00:41,490 --> 00:00:42,790
對於我的學生得到它。

11
00:00:42,960 --> 00:00:44,350
所以這是完全可選的。

12
00:00:44,550 --> 00:00:48,540
這是重要的，但它不是做應用至關重要。

13
00:00:48,630 --> 00:00:51,310
這不是在使用過程中向前邁進的關鍵。

14
00:00:51,330 --> 00:01:00,280
這是值得的是，如果你現在嘗試一次看它，它不會使一噸的感覺給你，你可以再重新考慮對課程結束後，一旦你得到一些更有經驗的JavaScript。

15
00:01:00,330 --> 00:01:03,490
而這件事情我和我的學生做的人所有的時間也是如此。

16
00:01:03,570 --> 00:01:06,080
正如我提到的，我們做討論這個主題。

17
00:01:06,210 --> 00:01:27,660
因此，讓我們開始，我們要建立我們自己的每一個，我們要通過定義一個只是呼籲每個功能啟動，它會比在上班的路上有點不同，真正的foreach工作，因為現在的方式，每個作品是我定義數組姑且稱之為喃的，我們將有一些數字在那裡這樣的。

18
00:01:28,050 --> 00:01:30,390
我呼籲每一個上Nomes。

19
00:01:30,480 --> 00:01:44,820
所以點NUMS每個然後我給它一個功能，我們只是看到這個，所以我不會煩你太多的希望，但我們只是撥打這個號碼，然後就做一個簡單的常量日誌。

20
00:01:45,240 --> 00:01:46,160
沒有。

21
00:01:46,800 --> 00:01:49,030
在那裡，我們走了。

22
00:01:49,260 --> 00:01:54,580
它需要的功能和它的陣列中的每個元件上調用一個函數。

23
00:01:54,740 --> 00:01:59,130
突起部，但請注意，我們沒有通過標稱的成每個。

24
00:01:59,190 --> 00:02:04,680
它只是知道這件事知道的數組，因為我們做了侏儒點每個號碼。

25
00:02:04,680 --> 00:02:07,740
所以，我們不打算通過定義工作這樣一個函數來啟動。

26
00:02:07,830 --> 00:02:09,810
我們要開始一個看起來是這樣的。

27
00:02:09,990 --> 00:02:16,560
那麼叫它為每而不是採取只有一個參數將採取我的兩個。

28
00:02:16,710 --> 00:02:21,870
和第一個是陣列和第二個是功能。

29
00:02:21,870 --> 00:02:24,390
因此，陣列將Nomes。

30
00:02:24,450 --> 00:02:25,880
並且這將是功能。

31
00:02:26,010 --> 00:02:39,590
所以，如果你想運行與標稱的它看起來像這樣我每個喃的逗號和相同的代碼，然後我們整個的功能在這裡，這將看起來是一樣的對視了一眼上面。

32
00:02:39,600 --> 00:02:42,560
因此，我們開始了這個版本，因為它更簡單。

33
00:02:43,080 --> 00:02:46,310
這是一個小更語法，但它更簡單為我們寫的。

34
00:02:46,590 --> 00:02:52,350
所以，再一次我們傳遞喃的，而不是僅僅使用特殊的JavaScript魔術抓住它。

35
00:02:52,350 --> 00:02:57,950
有一種方法，如果你的東西定義一個方法像我們這裡，但我們會到達那個抓住它。

36
00:02:58,110 --> 00:03:02,520
行，所以讓我們定義一個函數MYF或每個。

37
00:03:02,940 --> 00:03:06,150
而且它需要以陣列和功能。

38
00:03:06,150 --> 00:03:10,560
我們不能調用該函數，因為這是在Javascript中一個特殊的詞。

39
00:03:10,560 --> 00:03:16,840
因此，我們把它叫做phunk或者隨便你怎麼稱呼它F和然後​​我們打開我們的函數。

40
00:03:17,520 --> 00:03:20,830
讓我們通過談論每個實際上不會開始。

41
00:03:21,210 --> 00:03:27,460
所以請記住它需要的功能，它要求它為數組中的每一個項目。

42
00:03:27,480 --> 00:03:32,390
因此，為了做到這一點，我們需要使用一個循環來為數組中的每一個項目做任何事情。

43
00:03:32,400 --> 00:03:33,730
我們必須有一個循環。

44
00:03:33,780 --> 00:03:45,570
所以我們剛剛經歷陣列使用for循環將循環，然後在循環中，我們只是要調用函數，所有我們需要做的調用函數是在末尾加上括號。

45
00:03:45,810 --> 00:03:52,800
所以這是一個有點混亂，這是我的東西總是學生在鬥爭，誰的學習JavaScript送過來就掛了。

46
00:03:52,950 --> 00:03:58,060
但要記住沒有括號函數名之間的區別。

47
00:03:58,740 --> 00:04:00,960
這只是指函數本身。

48
00:04:01,050 --> 00:04:08,320
但它不盡快執行它，因為我加括號它需要的代碼，而不是FUNC並執行。

49
00:04:08,670 --> 00:04:10,480
所以，在這裡我可以給你舉個例子。

50
00:04:10,710 --> 00:04:11,860
如果我們只是做。

51
00:04:12,010 --> 00:04:13,310
讓我砍了這一點。

52
00:04:13,530 --> 00:04:17,610
如果我們只是提醒警惕不實際運行。

53
00:04:17,760 --> 00:04:20,690
但只要我們添加這些括號，我們得到一個警報。

54
00:04:20,820 --> 00:04:24,200
我沒有傳遞任何東西，但它仍然執行的代碼。

55
00:04:24,780 --> 00:04:31,790
因此，讓我們回到我們的代碼，而不僅僅是打電話phunk直線距離這樣的，我們將通過數組循環。

56
00:04:31,830 --> 00:04:43,490
於是我通過陣列添加評論循環，然後循環調用phunk裡面陣列中的每個項目。

57
00:04:43,560 --> 00:04:45,360
因此，要通過數組循環。

58
00:04:46,080 --> 00:04:47,250
嗯，這是一個循環。

59
00:04:47,280 --> 00:04:50,260
你也可以使用一個while循環，但我們會用一個for循環。

60
00:04:50,280 --> 00:04:58,050
因此，對於VAR我等於零我不到R R點長度是參數的名稱。

61
00:04:58,140 --> 00:04:59,590
A R R.

62
00:04:59,880 --> 00:05:20,050
然後我再加上加就這樣，然後我將搬到這條線到我們的循環，因為我們想要做的是這個循環我們要調用phunk因此我們可以通過只調用鄉親就這樣開始內部。

63
00:05:20,840 --> 00:05:33,250
所以，無論函數傳遞中的第二個參數是要為我們仍然缺少一個重要的部分是實際從每個項目中的數組中傳遞的數據數組中的每一項調用一次。

64
00:05:33,320 --> 00:05:35,360
但對於每一個項目這整個列。

65
00:05:35,360 --> 00:05:36,680
因此，讓我們敲回車。

66
00:05:37,420 --> 00:05:38,920
現在，讓我們嘗試運行此。

67
00:05:38,930 --> 00:05:46,780
我要定義數組調用的顏色或喜愛的我最喜愛的至少橙色。

68
00:05:46,910 --> 00:05:48,640
我們會只停留在黃色。

69
00:05:49,160 --> 00:05:59,910
所以三個項目，然後我只是要打電話給我的每4個，並通過在顏色的數組，然後我就做警報。

70
00:06:00,110 --> 00:06:04,430
而且我們不加括號記得，因為這將立即執行警報。

71
00:06:04,430 --> 00:06:05,580
這不是我們想要的。

72
00:06:06,170 --> 00:06:10,980
我們要的功能我對每個要執行警戒之一。

73
00:06:11,180 --> 00:06:13,600
因此請記住phunk實際上警報。

74
00:06:13,610 --> 00:06:20,900
在這種情況下，但它也可以是記錄或最多這將是一個匿名函數領事。

75
00:06:20,900 --> 00:06:24,740
我們定義那被稱為內部phunk的。

76
00:06:24,800 --> 00:06:29,480
因此，讓我們將其改回警覺和不按回車鍵。

77
00:06:29,900 --> 00:06:31,340
我得到一個警報。

78
00:06:31,730 --> 00:06:34,430
我打了好，我得到另一個警報。

79
00:06:34,640 --> 00:06:37,320
我點擊確定，我得到一個更加警覺。

80
00:06:37,670 --> 00:06:44,900
那麼，有什麼情況是，這個for循環遍歷數組，在我們的例子是一個顏色數組有三個項目。

81
00:06:44,900 --> 00:06:51,520
所以三次循環播放，每次調用FUNC和所有phunk是警覺。

82
00:06:51,560 --> 00:06:52,670
這一切，它是。

83
00:06:52,670 --> 00:06:57,980
所以，它提醒空警報三次，因為我們並沒有傳遞任何進入臨陣脫逃。

84
00:06:57,980 --> 00:07:10,240
因此，為了使之與數據傳遞進入警戒或任何func為我們所做的一切就是在這裡傳遞數據的一點點數據的那一點點應該是數組中的每一項工作。

85
00:07:10,250 --> 00:07:13,190
這樣我們訪問每個項的方式是使用一

86
00:07:13,370 --> 00:07:19,810
所以，如果我在這裡回顧我的代碼只需添加陣列支架。

87
00:07:20,860 --> 00:07:25,100
所以第一次循環，這將調用FUNC這是警報。

88
00:07:25,100 --> 00:07:33,240
在這種情況下，與被讀這樣會得到警報讀，然後我變成一個數組中的第一項。

89
00:07:33,320 --> 00:07:38,510
於是想起phunk這仍然是一個數組是橙色預警。

90
00:07:38,510 --> 00:07:49,840
因此，我們得到橙色警報，然後再一次警示黃明說看到，現在如果我在這裡回顧我的執行我的每一個顏色的警報。

91
00:07:50,420 --> 00:07:58,500
現在，它給我的紅橙色和黃色，這實際上所有有定義每個。

92
00:07:58,580 --> 00:08:06,270
但是正如我所說的大部分時間，你不會看到像這樣的地方，我們通過一個名為函數通常都會有一個匿名函數。

93
00:08:06,320 --> 00:08:07,620
所以我們不要給它一個鏡頭。

94
00:08:07,730 --> 00:08:09,920
但是，使用匿名函數。

95
00:08:09,920 --> 00:08:17,390
所以，我的每一個，然後我們將再次通過和顏色，然後匿名函數。

96
00:08:17,390 --> 00:08:25,270
請記住，即使這裡有括號這些都是非常不同的括號比一說調用函數。

97
00:08:25,280 --> 00:08:27,050
因此，讓我真正告訴你我是什麼意思。

98
00:08:27,470 --> 00:08:33,050
如果我刪除第一部分，我只是有一個匿名函數就在這裡。

99
00:08:33,410 --> 00:08:35,610
而我們內部做的是律師對話框。

100
00:08:35,790 --> 00:08:45,730
我是一個功能，我打，現在進入，我可以spaceless了一點對你那麼這是一個比較容易看到發生了什麼。

101
00:08:45,770 --> 00:08:47,930
你覺得會發生什麼。

102
00:08:49,130 --> 00:08:50,750
那麼當然是發生了。

103
00:08:50,960 --> 00:08:54,540
讓我回去，並在右括號加為我的律師點日誌。

104
00:08:54,740 --> 00:08:56,360
現在，你覺得什麼事情發生。

105
00:08:56,360 --> 00:08:58,910
我想在這裡種廢墟的那一刻。

106
00:08:59,150 --> 00:09:03,100
但是，當我按下回車鍵，你會看到沒有什麼反應。

107
00:09:03,110 --> 00:09:06,200
我得到的返回給我發回的值。

108
00:09:06,200 --> 00:09:13,620
但是，代碼不運行我看不到前景不變，這就是因為這個匿名函數永遠不會被調用。

109
00:09:13,670 --> 00:09:16,040
基本上它存在了一會兒，現在它不見了。

110
00:09:16,040 --> 00:09:16,960
我沒有給它一個名字。

111
00:09:16,970 --> 00:09:18,450
我沒有把它保存到一個變量。

112
00:09:18,500 --> 00:09:21,530
除非我把它改寫我永遠不能再調用它。

113
00:09:21,530 --> 00:09:26,240
因此，要執行這個功能我還需要那些括號之後。

114
00:09:26,240 --> 00:09:29,700
所以這是一個很大的語法它是一種醜陋在我看來。

115
00:09:29,810 --> 00:09:33,490
但現在，如果我有那些​​括號我得到的功能。

116
00:09:33,830 --> 00:09:44,440
所以這是同樣的事情，我們這樣做的時候我對每個顏色，然後我們在這裡傳遞一個匿名函數。

117
00:09:45,520 --> 00:09:55,020
讓我們說，這個函數什麼都讓我們只說喜警報這個功能沒有被調用就在這裡。

118
00:09:55,310 --> 00:09:56,860
這是對這裡的功能。

119
00:09:56,870 --> 00:10:00,120
我們仍然需要這些括號之後像我們這裡。

120
00:10:00,520 --> 00:10:07,250
這就是從我的foreach，我們要添加這些括號到funk和放克裡面來了。

121
00:10:07,310 --> 00:10:10,540
在我們的例子這裡是整個第二個參數。

122
00:10:10,610 --> 00:10:15,670
所以，如果你在這個失去了不要再擔心有點不是課程的其餘部分是至關重要的。

123
00:10:15,950 --> 00:10:25,670
但後來在最後一次嘗試這個，所以我可以做這樣的事情，我只是警惕高還是我沒有實際使用像紅色橙色和黃色的數據。

124
00:10:25,750 --> 00:10:29,010
這並不是說共同想這樣做，但如果我打進去。

125
00:10:29,570 --> 00:10:33,530
你會看到我得到一個較高的二，三的高點。

126
00:10:33,560 --> 00:10:37,370
因此，對於該顏色的陣列中的每個項目有三個項目。

127
00:10:37,370 --> 00:10:44,940
它調用這個全功能的，但往往不是我們想要做的是真正使用該顏色的像我們在這裡做。

128
00:10:45,130 --> 00:10:47,160
或者我們可以這樣開始每種顏色。

129
00:10:47,620 --> 00:10:50,920
所以我們要做的就是接受我們的函數的參數。

130
00:10:51,010 --> 00:10:55,570
所以，我的foreach而這間隔出這一點。

131
00:10:55,580 --> 00:11:03,450
因此功能，這將被稱為色彩但可以像我們定義的其他功能，當然任何事情。

132
00:11:03,620 --> 00:11:13,800
它可以是幾乎任何東西它必須是一個有效的JavaScript名稱不能是類似的東西是留給他們的關鍵字，但任何東西都不會正常工作的功能或變種。

133
00:11:13,820 --> 00:11:15,110
所以，這就是我們在這裡。

134
00:11:15,230 --> 00:11:20,820
一位不願透露姓名的功能，現在期待一個參數，然後我們可以使用它的裡面這裡。

135
00:11:20,840 --> 00:11:24,920
所以控制台點日誌的顏色開始。

136
00:11:26,260 --> 00:11:30,640
因此，要通過本更多的時間，我們遍歷顏色行走。

137
00:11:30,640 --> 00:11:40,600
在這種情況下，這就是我們的數組是什麼ARE是我們循環，每次通過我們稱之為phunk這是在這裡這整個事情。

138
00:11:40,940 --> 00:11:45,770
我回顧，順便在當前項目的數組中為止。

139
00:11:45,880 --> 00:11:48,280
因此，我們在這裡調用此代碼。

140
00:11:48,530 --> 00:11:51,760
然後，我們傳遞紅色，然後是橙色和黃色，然後。

141
00:11:51,880 --> 00:11:54,950
所以色等於紅色或橙色或黃色。

142
00:11:54,950 --> 00:12:00,000
通過這個列表中的每個時間，因為你可以看到，我們得到的紅橙色和黃色。

143
00:12:00,160 --> 00:12:02,530
所以這是寫為每個基本途徑。

144
00:12:02,870 --> 00:12:13,530
但作為一個承諾，我會告訴你我們是如何被添加到一個數組，所以我們可以把它寫這樣的顏色點的每個或點我的每一個因為每個已經存在。

145
00:12:13,660 --> 00:12:14,570
我們要不要管它。

146
00:12:14,650 --> 00:12:16,140
但顏色為我的每一個。

147
00:12:16,120 --> 00:12:20,590
然後我們就可以在一個函數傳遞在這裡做到這一點。

148
00:12:20,960 --> 00:12:30,970
而當一個跳躍超前了一點，我們還沒有談到對象，但我們還沒有談到原型，但我只是要在這裡展示給你，然後隨著課程的推移，我們將學習更多的東西上。

149
00:12:30,980 --> 00:12:33,800
事實上，下一個單元是所有關於對象。

150
00:12:33,860 --> 00:12:48,550
所以我們要做的就是，我們實際上添加一個方法來重新點原型機生產線類型你永遠不拼，我們會打電話給我的是為每個。

151
00:12:48,560 --> 00:12:51,860
而之前，我做該通知的自動完成。

152
00:12:52,310 --> 00:12:55,640
這些都是對數組原型存在的所有方法。

153
00:12:55,630 --> 00:13:11,750
所以這就是我們得到了所有像push和pop和shift和未發貨，並為每個他們上什麼所謂的陣列原型和任何在該原型定義定義每一個陣列上存在的這些方法可用它的每一個陣列中可使用。

154
00:13:12,380 --> 00:13:23,770
因此，讓我們試試這個，現在讀了試制了我的每一個是一個函數，函數只需要一個參數。

155
00:13:23,770 --> 00:13:36,660
現在，像我們這裡，它只是需要FUNC，然後裡面我們需要做我們同樣的邏輯，我們遍歷數組，然後調用一個函數的陣列中的每個項目。

156
00:13:36,680 --> 00:13:40,930
唯一改變的事情是我們不接受的理由。

157
00:13:40,970 --> 00:13:45,410
A R是我們沒有數組了，但我們在這裡有它。

158
00:13:45,620 --> 00:13:47,030
這是一個有點不同。

159
00:13:47,090 --> 00:13:49,880
我們必須使用關鍵字這一點。

160
00:13:50,030 --> 00:13:56,050
這樣的關鍵詞這是怎麼回事指的是我們調用ASSAN的特定的陣列。

161
00:13:56,090 --> 00:14:04,950
所以在顏色的點的情況下為每個如果我們寫的關鍵字這裡面的每一個定義，將參照顏色。

162
00:14:05,140 --> 00:14:08,350
但是，如果我們做的每個或狗東西，每個號碼。

163
00:14:08,570 --> 00:14:12,530
這是指我們調用它的特定陣列。

164
00:14:13,220 --> 00:14:19,980
所以，我們要做四VAR我等於零。

165
00:14:20,210 --> 00:14:28,490
雖然我是低於此點就像我加再加。

166
00:14:28,850 --> 00:14:30,490
所以這是第一個變化。

167
00:14:30,500 --> 00:14:34,420
我們使用此鏈接，則指的是特定的陣列。

168
00:14:34,610 --> 00:14:36,440
因此，我們不是在傳遞給它了。

169
00:14:36,740 --> 00:14:48,160
我們要做的下一件事就是我們所說的phunk就像我們在原來的版本中那樣，除了代替陣列支架，我會做這個支架。

170
00:14:48,160 --> 00:14:51,480
我只是喜歡這樣。

171
00:14:51,770 --> 00:14:53,140
而這其實都是有它。

172
00:14:53,140 --> 00:14:58,560
所以，我們只是通過更換其中有大家爭論的名稱R R適應它一點點。

173
00:14:58,580 --> 00:15:04,040
它可以通過用關鍵字這個替換它當然有過任何東西。

174
00:15:04,120 --> 00:15:07,100
所以讓我們嘗試一下使用它。

175
00:15:07,100 --> 00:15:08,520
我們需要一個新的數組。

176
00:15:08,650 --> 00:15:14,540
所以，我會做出一個叫朋友，我們將有它有幾個朋友。

177
00:15:14,650 --> 00:15:16,790
查理。

178
00:15:18,020 --> 00:15:26,340
戴夫Matie和凱特琳就這樣敲回車。

179
00:15:26,450 --> 00:15:33,290
現在，我們可以做的朋友點我每個而這需要一個函數作為參數。

180
00:15:33,400 --> 00:15:36,140
所以，我們可以只給它警告，如果我們想。

181
00:15:36,950 --> 00:15:38,090
而我們得到查理。

182
00:15:38,210 --> 00:15:54,090
戴夫Madie和凱特琳但通常我們會用這樣一個匿名函數為每個我的，然後在這裡一個函數看到它，讓我們說這些每一個都是一個名稱。

183
00:15:54,110 --> 00:16:07,310
然後，我們會做的是取決於我們，但讓我們做這樣的事情登錄我愛加名counsil。

184
00:16:07,310 --> 00:16:09,560
在那裡，我們去和我們得到的。

185
00:16:09,560 --> 00:16:10,900
我愛查理我愛戴夫。

186
00:16:10,940 --> 00:16:12,780
我愛馬迪我愛凱特琳。

187
00:16:13,250 --> 00:16:15,030
OK所以這一切就是這麼簡單。

188
00:16:15,320 --> 00:16:24,010
我的意思不是說在輕率的方式有很多，但至於它的代碼實際上是很短只是一些新的概念。

189
00:16:24,130 --> 00:16:28,290
這款原型車的事，我真的沒去了，我這樣做故意的。

190
00:16:28,660 --> 00:16:47,060
它現在不是那麼重要的是要專注於這一點，但我確實希望你關注的是這個想法來回傳送功能，所以我們可以通過一個函數的參數或作為參數，它不會裡面的執行英特爾代碼中，我們實際上是指它並在末尾添加這些括號。

191
00:16:47,060 --> 00:16:50,230
因此，如果沒有這些括號的功能並不做任何事情。

192
00:16:50,240 --> 00:16:50,810
它的存在。

193
00:16:50,820 --> 00:16:56,560
這是我們可以參考價值，但我們添加括號和它的實際執行。

194
00:16:56,620 --> 00:16:57,650
好大。
