1.2.3.19.框架小叮嚀:Function Factories

  • 利用閉包的特性建立Function Factories

    • 由函數創造函數

  • 修改重載講到的程式碼

    • 會產生兩個不同的執行環境, 兩套記憶體

    • 當函數執行完後, 執行環境離開執行堆, 但記憶體都還在

function makeGreeting(language) {
    //將會回傳一個函數
    return (firstname, lastname){
        if (language === 'en') {
            console.log('Hello ' + firstname + " " + lastname)
        }
        if (language === 'es') {
            console.log('Hola ' + firstname + " " + lastname)
        }
    }
}

var greetEnglish = makeGreeting('en');
var greetSpanish = makeGreeting('es');

//invoke
greetEnglish('John', 'Doe');
greetSpanish('John', 'Doe');

Last updated