У меня есть функция для генерации некоторых случайных чисел и внутри этой функции я делаю вызов setInterval(), потому что мне нужно, чтобы эти числа обновлялись каждые 2 секунды.Доступ к глобальным переменным в setInterval()
function genSine(val1, val2) {
var freq = 0.1; // angular frequency
var coords = function(x, y) {
var amplitude = Math.floor((Math.random()*10)+1);
var phase = Math.floor((Math.random()*20)+1);
return {
x : Math.sin(freq * (val1 + phase) * amplitude) + Math.floor((Math.random()*100)+1),
y : Math.sin(freq * (val2 + phase) * amplitude) + Math.floor((Math.random()*100)+1)
};
}
setInterval(function() {
current = coords(50, 50);
console.log('Val 1: ' + current.x);
console.log('Val 2: ' + current.y);
}, 2000);
}
genSine(10, 20);
Это все хорошо, обновление значения, как ожидалось, но моя цель состоит в том, чтобы иметь две глобальные переменные (назовем их знач1/val2) обновление в рамках этой функции setInterval(). По-видимому, у меня есть проблема, потому что эти переменные недоступны внутри функции, и я не могу получить доступ к «текущей» переменной извне этой функции. Я знаю, что здесь что-то не хватает, что это?
Fiddle: http://jsfiddle.net/niczak/4uNen/1/
объявить 'вар ток = {};' вне функции –
здесь является jsfiddle http://jsfiddle.net/4uNen/2/ –