JavaScript: Understanding the Weird Parts - Function Factories
3507 ワード
IIFEなどによって他の環境とパラメータにおける関数の動作を見た.
エンクロージャの存在は、柔軟なモードを意味します
次に返される関数には、それぞれの実行コンテキストがあります.
実行コンテキストの観点から
グローバル実行スタックにもグローバル変数があります
2つのlanguageはpop後も存在するcloserです
2つの関数はlanguageとfirstname、lastnameをそれぞれ参照します.
エンクロージャの存在は、柔軟なモードを意味します
function makeGreeting() {
return function(firstname, lastname) {
if(language === 'en') {
console.log('Hello ' + firstname + ' ' + lastname)
}
if(language === 'es') {
console.log('Hola ' + firstname + ' ' + lastname)
}
}
}
language変数を奥の関数に渡し、奥の関数を返しますconst greetEnglish = makeGreeting('en')
const greetSpanish = makeGreeting('es')
パラメータによって戻り関数の結果が異なります次に返される関数には、それぞれの実行コンテキストがあります.
greetEnglish('John', 'Doe')
greetSpanish('John', 'Doe')
makeGreetingは工場関数のように動作します実行コンテキストの観点から
グローバル実行スタックにもグローバル変数があります
2つのlanguageはpop後も存在するcloserです
2つの関数はlanguageとfirstname、lastnameをそれぞれ参照します.
Reference
この問題について(JavaScript: Understanding the Weird Parts - Function Factories), 我々は、より多くの情報をここで見つけました https://velog.io/@dps0340/JavaScript-Understanding-the-Weird-Parts-Function-Factoriesテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol