剛開始認真對待JavaScript。我的代碼在下面有什麼問題?揭示模塊模式得到未定義變量
var Person = (function(name,age){
var name = name, age = age;
var print = function(){
console.log('I"m '+name+', and I"m '+age+' year old');
}
return {print:print}
})();
Person.print("James",19);
我得到的名字和年齡未定義。我問題我發現也與這種模式,如果你有很多方法,那麼最後你的回報將是
return {methodA:methodA, methodB:methodB, methodC:methodC}
這對我來說是如此醜陋。我是不是應該換我的方法的返回內像
return{
methodA: function(){
}
};
沒有問題的,但要注意的是,線'變量名稱=名字,年齡=年齡;'可以被刪除而不會改變行爲 - 函數參數已經是clos的一部分ure,因此不需要嘗試將它們複製到局部變量,並且嘗試創建與函數參數具有相同名稱的局部變量不會執行任何操作。 – nnnnnn