Jestem nowicjuszem w JavaScript (tj. Uczenie JavaScript POPRAWNIE). Czytam sekcję „Zmienne statyczne prywatne” w profesjonalnej JavaScript dla Web deweloperów 3rd Edition w rozdziale 7.Statyczne zmienne prywatne w JavaScript
został mi przedstawiony z tego kodu, ale czuję, że nie jest idealny:
(function(){
//private variables and functions
var privateVariable = 10;
function privateFunction(){
return false;
}
//constructor
MyObject = function(){
};
//public and privileged methods
MyObject.prototype.publicMethod = function(){
privateVariable++;
return privateFunction();
};
})();
W tym przypadku polegają one na tworzeniu MyObject jako zmiennej globalnej, pomijając "var". Jednak w trybie ścisłym nie można pominąć słowa kluczowego var, a ten kod spowodowałby błąd.
Czy mój przepis byłby poprawny?
var MyObject = (function(){
//private variables and functions
var privateVariable = 10;
function privateFunction(){
return false;
}
var MyObject = function(){
}
//public and privileged methods
MyObject.prototype.publicMethod = function(){
privateVariable++;
return privateFunction();
};
return MyObject;
})();
Jestem zdezorientowany tym, dlaczego książka pominęłaby rozwiązanie tego problemu i podejście z leniwą metodologią. Jestem mocno wierzą w używanie "trybu ścisłego" dla całego mojego kodu.
To pytanie prawdopodobnie należy na co http://codereview.stackexchange.com - ale uważam swoje przepisać obiektywnie bardziej poprawnie niż przykład z książki. – Mic
Twoja wersja jest w porządku. Ta książka jest dość stara; 4 lata to ogromna ilość czasu w świecie technologii internetowych. – Pointy
Przepraszamy! Był mój pierwszy wpis na stackoverflow. Jeśli ktoś mógłby przenieść go do odpowiedniej lokalizacji, która byłaby świetna! –