刚开始认真对待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