Widzę tutaj różne opinie, ale większość z nich jest bardziej oparta na tym, co uważasz za lepsze, ale nie widzę powodów technicznych, kiedy należy korzystać z tych samych, ale na pewno są techniczne ograniczenia lub korzyści w użytkowaniu jednej formuły deklaracji lub innej. Naprawdę jestem początkującym użytkownikiem javascript i nie mam pewności, że mogę o tym poradzić, ale zaproponuję przypadek, w którym przechowywanie funkcji w zmiennej nie będzie funkcjonować.
W poniższym kodzie, definiując filtr kątowy, jeśli zdefiniuję funkcję wewnątrz zmiennej, nie mogę pomyślnie wywołać jej z metody filtru. Czy ktoś mógłby mi wytłumaczyć techniczne powody?
Zobacz kod (skomentowała nie działa):
angular
.module('loc8rApp')
.filter('formatDistance', formatDistance);
function formatDistance(){
return function (distance) {
var numDistance, unit;
if (distance && _isNumeric(distance)) {
if (distance > 1) {
numDistance = parseFloat(distance).toFixed(1);
unit = 'km';
} else {
numDistance = parseInt(distance * 1000,10);
unit = 'm';
}
return numDistance + unit;
} else {
return "?";
}
};
};
var _isNumeric = function (n) {
return !isNaN(parseFloat(n)) && isFinite(n);
};
/*
var formatDistance = function() {
return function (distance) {
var numDistance, unit;
if (distance && _isNumeric(distance)) {
if (distance > 1) {
numDistance = parseFloat(distance).toFixed(1);
unit = 'km';
} else {
numDistance = parseInt(distance * 1000,10);
unit = 'm';
}
return numDistance + unit;
} else {
return "?";
}
};
};
*/
Z góry dziękuję!
dla tego pytania potrzebujesz więcej koncentracji na zmiennych łańcuchowych i zmiennych całkowitych i zmiennoprzecinkowych; –
http://stackoverflow.com/questions/1013385/what-is-the-difference-between-a-function-expression-vs-declaration-in-javascrip – jbabey
duplikat: http://stackoverflow.com/questions/336859/javascript-var-functionname-function-vs-function-functionname –