У меня есть функция вычисления размеров изображения, которая возвращает масштабные значения размера изображения при его выполнении. (Обратите внимание: список изображений и их размеры доступны из массивов.)JavaScript: eval функция внутри другой функции
function setDesiredDimensions() {
var width = Math.min(imagesOrigWidths[currindex], desiredWidthLimit);
var height = Math.ceil((width/imagesOrigWidths[currindex]) * imagesOrigHeights[currindex]);
some more calculation code here...
return {width:width,height:height};
}
var size = setDesiredDimensions(imagesOrigWidths[currindex], imagesOrigHeights[currindex]);
Тогда у меня есть некоторые кнопки в HTML:
<a id="button1"></a>
<a id="button2"></a>
<a id="button3"></a>
И различное OnClick события на этих кнопках, такие как:
$('#button1').click(function() {
currindex = (currindex+1) % max;
**I need to evaluate setDesiredDimensions function here **
$("#imageswap").attr({src: imgSrcBase(imagesGuids[currindex]), width: size.width, height: size.height})
});
Кнопки регулируют текущий индекс изображения в массиве, который должен применяться для расчета размера. BUT: Я не хочу, чтобы одна и та же функция setDesiredDimensions копировалась и вставлялась во все функции нажатия кнопок, а просто обращалась/оценивала ее как ярлык для более чистого кода.
Я слышал eval(); является опасным и медленным. Есть идеи?
Eval является злом. Не используйте его. Когда-либо. – Halcyon
Почему бы просто не вызвать 'setDesiredDimensions()'? – bdares
Eval обычно считается плохой идеей - см. Http://stackoverflow.com/questions/86513/why-is-using-javascript-eval-function-a-bad-idea – kaj