Помощь новичку
Прошу помочь мне. Дело в том, что при ручном дебаге кода все работает нормально, однако, когда я запускаю "AnimationList.Start()" начинаются неполадки:
TypeError: this.Animations is undefined var AnimationList = { Animations : new Array(), Interval : 50, AnimationNumber : 0, } AnimationList.Push = function (pic) { this.Animations.push (pic); } AnimationList.Get = function () { return this.Animations[this.AnimationNumber]; } AnimationList.Change = function () { this.AnimationNumber++; if (this.AnimationNumber == this.Animations.length) this.AnimationNumber = 0; } AnimationList.SetInterval = function (Interval) { this.Interval = Interval; } AnimationList.Start = function () { this.Timer = setInterval (this.Change, this.Interval); } буду признателен за помощь |
D34DStone, this.Change.bind(this)
|
спасибо, помогло
|
Добрый день. Подскажите и мне. Как поменять функцией переменную вне функции? Заранее благодарен.
var x = 1, x1 = 3; var some = function(y){ y = 2; return y } some(x); some(x1); console.log(x); //должно быть 2 console.log(x1); //аналогично, должно быть 2 |
Простой ответ: никак. Только не примитивные значения(объекты) передаются в функцию по сслыке.
|
Да, но если я присвою внутри функции x1 значение y, то console.log(x1) покажет 2, ведь так? Я правильно понял, что нет способа присваивать значение переменной, которую подставляю в функцию на место "y", непосредственно внутри функции?
var x = 1, x1 = 3; var some = function(y){ y = 2; x1 = y; return y } some(x); some(x1); console.log(x); //должно быть 2 console.log(x1); //здесь же будет 2? |
sirius1,
мысли вслух ... var obj = {x : 1, x1 : 3}; var some = function(y){ obj[y] = 2 } some('x'); some('x1'); alert(obj.x); //должно быть 2 alert(obj.x1); //аналогично, должно быть 2 |
Я собственно к чему это, читаю книгу, пытаюсь выполнить задание " В качестве упражнения напишите две функции, reverseArray и reverseArrayInPlase. Первая получает массив как аргумент и выдает новый массив - с обратным порядком элементов. Вторая работает как оригинальный метод reverse - она меняет порядок элементов на обратный в том массиве, который ей был передан в качестве аргумента. Не используйте метод reverse."
С первым все более менее понятно, второй написать не получается var arrayValue = [1,2,3,4,5]; reverseArrayInPlase(arrayValue); console.log(arrayValue) //[5,4,3,2,1] |
Массив(как и функция) - не примитивное значение. Он передаётся по ссылке.
|
Часовой пояс GMT +3, время: 11:45. |