你好,我已經開始學習一些JavaScript,我無法用「正常」函數來包裹我的頭。我不明白爲什麼以下兩個函數輸出不同的結果。 f2輸出5,而f1輸出1.爲什麼?Javascript模塊模式和函數調用
var f1 = function(){
var x= 1;
var add = function(){
x=5;
};
var result = function(){
console.log(x);
};
return {
add: add,
result: result
};
};
f1().add();
f1().result();
var f2= (function(){
var x= 1;
var add = function(){
x=5;
};
var result = function(){
console.log(x);
};
return {
add: add,
result: result
};
})();
f2.add();
f2.result();
您使用的是相同的'x'全局變量,因爲你沒有用'var'聲明它是這樣做的目的? – elclanrs
對不起,我忘了。我加了var,但是f1仍然輸出1. – user1870482
這裏沒有* this *。 :-) – RobG