我歡迎回來。
所以這個教訓是完全可選的。
這是一個獎勵的一點點。
這是真正的東西是有點意思。
這就是為什麼我在它展示給你，但它不是必不可少的課程。
而且我們要談論的foreach如何工作，我們要建立我們自己的每個版本。
所以，我們要談你是如何編寫一個函數，它接受一個函數作為參數，然後執行它內部的功能。
所以，再一次完全可選的。
使其成為可選的另一個原因是，它是一個有點更先進，我不想嚇唬大家，我不希望你覺得不好，如果是，如果它是混亂給你，因為它是混亂的，往往需要多次重複這個的。
對於我的學生得到它。
所以這是完全可選的。
這是重要的，但它不是做應用至關重要。
這不是在使用過程中向前邁進的關鍵。
這是值得的是，如果你現在嘗試一次看它，它不會使一噸的感覺給你，你可以再重新考慮對課程結束後，一旦你得到一些更有經驗的JavaScript。
而這件事情我和我的學生做的人所有的時間也是如此。
正如我提到的，我們做討論這個主題。
因此，讓我們開始，我們要建立我們自己的每一個，我們要通過定義一個只是呼籲每個功能啟動，它會比在上班的路上有點不同，真正的foreach工作，因為現在的方式，每個作品是我定義數組姑且稱之為喃的，我們將有一些數字在那裡這樣的。
我呼籲每一個上Nomes。
所以點NUMS每個然後我給它一個功能，我們只是看到這個，所以我不會煩你太多的希望，但我們只是撥打這個號碼，然後就做一個簡單的常量日誌。
沒有。
在那裡，我們走了。
它需要的功能和它的陣列中的每個元件上調用一個函數。
突起部，但請注意，我們沒有通過標稱的成每個。
它只是知道這件事知道的數組，因為我們做了侏儒點每個號碼。
所以，我們不打算通過定義工作這樣一個函數來啟動。
我們要開始一個看起來是這樣的。
那麼叫它為每而不是採取只有一個參數將採取我的兩個。
和第一個是陣列和第二個是功能。
因此，陣列將Nomes。
並且這將是功能。
所以，如果你想運行與標稱的它看起來像這樣我每個喃的逗號和相同的代碼，然後我們整個的功能在這裡，這將看起來是一樣的對視了一眼上面。
因此，我們開始了這個版本，因為它更簡單。
這是一個小更語法，但它更簡單為我們寫的。
所以，再一次我們傳遞喃的，而不是僅僅使用特殊的JavaScript魔術抓住它。
有一種方法，如果你的東西定義一個方法像我們這裡，但我們會到達那個抓住它。
行，所以讓我們定義一個函數MYF或每個。
而且它需要以陣列和功能。
我們不能調用該函數，因為這是在Javascript中一個特殊的詞。
因此，我們把它叫做phunk或者隨便你怎麼稱呼它F和然後​​我們打開我們的函數。
讓我們通過談論每個實際上不會開始。
所以請記住它需要的功能，它要求它為數組中的每一個項目。
因此，為了做到這一點，我們需要使用一個循環來為數組中的每一個項目做任何事情。
我們必須有一個循環。
所以我們剛剛經歷陣列使用for循環將循環，然後在循環中，我們只是要調用函數，所有我們需要做的調用函數是在末尾加上括號。
所以這是一個有點混亂，這是我的東西總是學生在鬥爭，誰的學習JavaScript送過來就掛了。
但要記住沒有括號函數名之間的區別。
這只是指函數本身。
但它不盡快執行它，因為我加括號它需要的代碼，而不是FUNC並執行。
所以，在這裡我可以給你舉個例子。
如果我們只是做。
讓我砍了這一點。
如果我們只是提醒警惕不實際運行。
但只要我們添加這些括號，我們得到一個警報。
我沒有傳遞任何東西，但它仍然執行的代碼。
因此，讓我們回到我們的代碼，而不僅僅是打電話phunk直線距離這樣的，我們將通過數組循環。
於是我通過陣列添加評論循環，然後循環調用phunk裡面陣列中的每個項目。
因此，要通過數組循環。
嗯，這是一個循環。
你也可以使用一個while循環，但我們會用一個for循環。
因此，對於VAR我等於零我不到R R點長度是參數的名稱。
A R R.
然後我再加上加就這樣，然後我將搬到這條線到我們的循環，因為我們想要做的是這個循環我們要調用phunk因此我們可以通過只調用鄉親就這樣開始內部。
所以，無論函數傳遞中的第二個參數是要為我們仍然缺少一個重要的部分是實際從每個項目中的數組中傳遞的數據數組中的每一項調用一次。
但對於每一個項目這整個列。
因此，讓我們敲回車。
現在，讓我們嘗試運行此。
我要定義數組調用的顏色或喜愛的我最喜愛的至少橙色。
我們會只停留在黃色。
所以三個項目，然後我只是要打電話給我的每4個，並通過在顏色的數組，然後我就做警報。
而且我們不加括號記得，因為這將立即執行警報。
這不是我們想要的。
我們要的功能我對每個要執行警戒之一。
因此請記住phunk實際上警報。
在這種情況下，但它也可以是記錄或最多這將是一個匿名函數領事。
我們定義那被稱為內部phunk的。
因此，讓我們將其改回警覺和不按回車鍵。
我得到一個警報。
我打了好，我得到另一個警報。
我點擊確定，我得到一個更加警覺。
那麼，有什麼情況是，這個for循環遍歷數組，在我們的例子是一個顏色數組有三個項目。
所以三次循環播放，每次調用FUNC和所有phunk是警覺。
這一切，它是。
所以，它提醒空警報三次，因為我們並沒有傳遞任何進入臨陣脫逃。
因此，為了使之與數據傳遞進入警戒或任何func為我們所做的一切就是在這裡傳遞數據的一點點數據的那一點點應該是數組中的每一項工作。
這樣我們訪問每個項的方式是使用一
所以，如果我在這裡回顧我的代碼只需添加陣列支架。
所以第一次循環，這將調用FUNC這是警報。
在這種情況下，與被讀這樣會得到警報讀，然後我變成一個數組中的第一項。
於是想起phunk這仍然是一個數組是橙色預警。
因此，我們得到橙色警報，然後再一次警示黃明說看到，現在如果我在這裡回顧我的執行我的每一個顏色的警報。
現在，它給我的紅橙色和黃色，這實際上所有有定義每個。
但是正如我所說的大部分時間，你不會看到像這樣的地方，我們通過一個名為函數通常都會有一個匿名函數。
所以我們不要給它一個鏡頭。
但是，使用匿名函數。
所以，我的每一個，然後我們將再次通過和顏色，然後匿名函數。
請記住，即使這裡有括號這些都是非常不同的括號比一說調用函數。
因此，讓我真正告訴你我是什麼意思。
如果我刪除第一部分，我只是有一個匿名函數就在這裡。
而我們內部做的是律師對話框。
我是一個功能，我打，現在進入，我可以spaceless了一點對你那麼這是一個比較容易看到發生了什麼。
你覺得會發生什麼。
那麼當然是發生了。
讓我回去，並在右括號加為我的律師點日誌。
現在，你覺得什麼事情發生。
我想在這裡種廢墟的那一刻。
但是，當我按下回車鍵，你會看到沒有什麼反應。
我得到的返回給我發回的值。
但是，代碼不運行我看不到前景不變，這就是因為這個匿名函數永遠不會被調用。
基本上它存在了一會兒，現在它不見了。
我沒有給它一個名字。
我沒有把它保存到一個變量。
除非我把它改寫我永遠不能再調用它。
因此，要執行這個功能我還需要那些括號之後。
所以這是一個很大的語法它是一種醜陋在我看來。
但現在，如果我有那些​​括號我得到的功能。
所以這是同樣的事情，我們這樣做的時候我對每個顏色，然後我們在這裡傳遞一個匿名函數。
讓我們說，這個函數什麼都讓我們只說喜警報這個功能沒有被調用就在這裡。
這是對這裡的功能。
我們仍然需要這些括號之後像我們這裡。
這就是從我的foreach，我們要添加這些括號到funk和放克裡面來了。
在我們的例子這裡是整個第二個參數。
所以，如果你在這個失去了不要再擔心有點不是課程的其餘部分是至關重要的。
但後來在最後一次嘗試這個，所以我可以做這樣的事情，我只是警惕高還是我沒有實際使用像紅色橙色和黃色的數據。
這並不是說共同想這樣做，但如果我打進去。
你會看到我得到一個較高的二，三的高點。
因此，對於該顏色的陣列中的每個項目有三個項目。
它調用這個全功能的，但往往不是我們想要做的是真正使用該顏色的像我們在這裡做。
或者我們可以這樣開始每種顏色。
所以我們要做的就是接受我們的函數的參數。
所以，我的foreach而這間隔出這一點。
因此功能，這將被稱為色彩但可以像我們定義的其他功能，當然任何事情。
它可以是幾乎任何東西它必須是一個有效的JavaScript名稱不能是類似的東西是留給他們的關鍵字，但任何東西都不會正常工作的功能或變種。
所以，這就是我們在這裡。
一位不願透露姓名的功能，現在期待一個參數，然後我們可以使用它的裡面這裡。
所以控制台點日誌的顏色開始。
因此，要通過本更多的時間，我們遍歷顏色行走。
在這種情況下，這就是我們的數組是什麼ARE是我們循環，每次通過我們稱之為phunk這是在這裡這整個事情。
我回顧，順便在當前項目的數組中為止。
因此，我們在這裡調用此代碼。
然後，我們傳遞紅色，然後是橙色和黃色，然後。
所以色等於紅色或橙色或黃色。
通過這個列表中的每個時間，因為你可以看到，我們得到的紅橙色和黃色。
所以這是寫為每個基本途徑。
但作為一個承諾，我會告訴你我們是如何被添加到一個數組，所以我們可以把它寫這樣的顏色點的每個或點我的每一個因為每個已經存在。
我們要不要管它。
但顏色為我的每一個。
然後我們就可以在一個函數傳遞在這裡做到這一點。
而當一個跳躍超前了一點，我們還沒有談到對象，但我們還沒有談到原型，但我只是要在這裡展示給你，然後隨著課程的推移，我們將學習更多的東西上。
事實上，下一個單元是所有關於對象。
所以我們要做的就是，我們實際上添加一個方法來重新點原型機生產線類型你永遠不拼，我們會打電話給我的是為每個。
而之前，我做該通知的自動完成。
這些都是對數組原型存在的所有方法。
所以這就是我們得到了所有像push和pop和shift和未發貨，並為每個他們上什麼所謂的陣列原型和任何在該原型定義定義每一個陣列上存在的這些方法可用它的每一個陣列中可使用。
因此，讓我們試試這個，現在讀了試制了我的每一個是一個函數，函數只需要一個參數。
現在，像我們這裡，它只是需要FUNC，然後裡面我們需要做我們同樣的邏輯，我們遍歷數組，然後調用一個函數的陣列中的每個項目。
唯一改變的事情是我們不接受的理由。
A R是我們沒有數組了，但我們在這裡有它。
這是一個有點不同。
我們必須使用關鍵字這一點。
這樣的關鍵詞這是怎麼回事指的是我們調用ASSAN的特定的陣列。
所以在顏色的點的情況下為每個如果我們寫的關鍵字這裡面的每一個定義，將參照顏色。
但是，如果我們做的每個或狗東西，每個號碼。
這是指我們調用它的特定陣列。
所以，我們要做四VAR我等於零。
雖然我是低於此點就像我加再加。
所以這是第一個變化。
我們使用此鏈接，則指的是特定的陣列。
因此，我們不是在傳遞給它了。
我們要做的下一件事就是我們所說的phunk就像我們在原來的版本中那樣，除了代替陣列支架，我會做這個支架。
我只是喜歡這樣。
而這其實都是有它。
所以，我們只是通過更換其中有大家爭論的名稱R R適應它一點點。
它可以通過用關鍵字這個替換它當然有過任何東西。
所以讓我們嘗試一下使用它。
我們需要一個新的數組。
所以，我會做出一個叫朋友，我們將有它有幾個朋友。
查理。
戴夫Matie和凱特琳就這樣敲回車。
現在，我們可以做的朋友點我每個而這需要一個函數作為參數。
所以，我們可以只給它警告，如果我們想。
而我們得到查理。
戴夫Madie和凱特琳但通常我們會用這樣一個匿名函數為每個我的，然後在這裡一個函數看到它，讓我們說這些每一個都是一個名稱。
然後，我們會做的是取決於我們，但讓我們做這樣的事情登錄我愛加名counsil。
在那裡，我們去和我們得到的。
我愛查理我愛戴夫。
我愛馬迪我愛凱特琳。
OK所以這一切就是這麼簡單。
我的意思不是說在輕率的方式有很多，但至於它的代碼實際上是很短只是一些新的概念。
這款原型車的事，我真的沒去了，我這樣做故意的。
它現在不是那麼重要的是要專注於這一點，但我確實希望你關注的是這個想法來回傳送功能，所以我們可以通過一個函數的參數或作為參數，它不會裡面的執行英特爾代碼中，我們實際上是指它並在末尾添加這些括號。
因此，如果沒有這些括號的功能並不做任何事情。
它的存在。
這是我們可以參考價值，但我們添加括號和它的實際執行。
好大。