Ich fange gerade an, Javascript ernst zu nehmen. Was ist falsch an meinem Code unten?Aufschlussreiches Modulmuster wurde undefiniert Variable
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);
Ich habe Name und Alter undefiniert. Ich Problem, das ich auch mit diesem Muster gefunden habe, wenn Sie viele Methoden haben, dann am Ende wird Ihre Rückkehr sein
return {methodA:methodA, methodB:methodB, methodC:methodC}
das ist so hässlich für mich. Sollte ich nur in der Rückkehr meine Methode wickeln wie
return{
methodA: function(){
}
};
nicht das Problem,
geteilt, aber beachten Sie, dass die Zeile 'var name = Name, Alter = Alter; 'konnte ohne Verhaltensänderung entfernt werden - die Funktionsargumente sind bereits Teil des Clos Sie müssen also nicht versuchen, sie in lokale Variablen zu kopieren, und wenn Sie versuchen, eine lokale Variable mit demselben Namen wie ein Funktionsargument zu erstellen, wird nichts unternommen. – nnnnnn