私はちょうど理由を理解できませんa1 =機能?varスコープ&クロージャでJavascriptを深く理解するには?
と私の価値は( FNに渡されたものである)、それはVARによりoverrwritedたかどうか
?
問題は同じ名前(var &機能)に起因するように見えます!
function fn(a) {
console.log("a1 = " + a);
var a = 2;
function a() { }
console.log("a2 = " + a);
}
fn(1);
// a1 = function a() { }
// a2 = 2
function fnx(ax) {
console.log("a1 = " + ax);
var ax = 2;
function b() { }
console.log("a2 = " + ax);
}
fnx(1);
// a1 = 1
// a2 = 2
/* it equal to the final version */
function fn(a) {
var a;
a = function() { }
// function hoisting > variable hoisting
console.log("a1 = " + a);
a = 2;
console.log("a2 = " + a);
}
fn(1);
// a1 = function a() { }
// a2 = 2
https://repl.it/languages/javascript – xgqfrms
https://repl.it/Es1v/0 – xgqfrms