Veo algunas opiniones diferentes aquí, pero la mayoría de ellas están más basadas en lo que piensas que es mejor o no, pero no veo las razones técnicas sobre cuándo usar una u otra, pero de seguro hay técnicas restricciones o ventajas en uso una fórmula de declaración u otra. Realmente soy un principiante con javascript y no estoy seguro de aconsejarlo, pero propondré un caso en el que almacenar una función en una variable no sea funcional.
En el siguiente código, al definir un filtro angular, si defino la función dentro de una variable, no puedo llamarlo con éxito desde el método de filtro. ¿Alguien podría explicarme la razón técnica sobre esto?
ver el código (comentado no está funcionando):
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 "?";
}
};
};
*/
gracias de antemano!
para esta pregunta necesita más concentración en variables de cadena y variables enteras y flotantes; –
http://stackoverflow.com/questions/1013385/what-is-the-difference-between-a-function-expression-vs-declaration-in-javascrip – jbabey
duplicado: http://stackoverflow.com/questions/336859/javascript-var-function-function-function-function-functionname –