test1とtest2という2つの関数があるとします。関数を返すときにJavascriptでクロージャはどのように機能しますか?
test1 = function(name){
console.log('Hi, ', name);
};
test2 = function(name) {
var text = 'Hello ' + name;
var say = function() { console.log(text); }
return say;
}
今、私は正確にここで何が起こっている
var t1 = test1('John');
var t2 = test2('John');
、関数を呼び出してVARSに保存しますか?
'test1'は関数を実行し、' 'Hi John'と' return undefined'を出力します。 't1'は' undefined'になります。 'test2'は、' text'上のクロージャを持つ新しい 'function'を返し、それを' t2'に代入します。 't2'は新しい' function'になりました。あなたはまだ完成していない出力を得るためにそれを実行する必要があります。 – JohanP
't2();のように呼び出すことができると思います。 – AminFarajzadeh