Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.10.2016, 16:52
Новичок на форуме
Отправить личное сообщение для D34DStone Посмотреть профиль Найти все сообщения от D34DStone
 
Регистрация: 24.10.2016
Сообщений: 3

Помощь новичку
Прошу помочь мне. Дело в том, что при ручном дебаге кода все работает нормально, однако, когда я запускаю "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);
}


буду признателен за помощь
Ответить с цитированием
  #2 (permalink)  
Старый 24.10.2016, 17:17
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,456

D34DStone, this.Change.bind(this)
Ответить с цитированием
  #3 (permalink)  
Старый 24.10.2016, 17:29
Новичок на форуме
Отправить личное сообщение для D34DStone Посмотреть профиль Найти все сообщения от D34DStone
 
Регистрация: 24.10.2016
Сообщений: 3

спасибо, помогло
Ответить с цитированием
  #4 (permalink)  
Старый 24.10.2016, 21:23
Новичок на форуме
Отправить личное сообщение для sirius1 Посмотреть профиль Найти все сообщения от sirius1
 
Регистрация: 24.10.2016
Сообщений: 3

Добрый день. Подскажите и мне. Как поменять функцией переменную вне функции? Заранее благодарен.
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
Ответить с цитированием
  #5 (permalink)  
Старый 24.10.2016, 21:31
Аватар для Aetae
Любитель
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 5,698

Простой ответ: никак. Только не примитивные значения(объекты) передаются в функцию по сслыке.
__________________
29375, 35
Ответить с цитированием
  #6 (permalink)  
Старый 24.10.2016, 21:54
Новичок на форуме
Отправить личное сообщение для sirius1 Посмотреть профиль Найти все сообщения от sirius1
 
Регистрация: 24.10.2016
Сообщений: 3

Да, но если я присвою внутри функции 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?
Ответить с цитированием
  #7 (permalink)  
Старый 24.10.2016, 22:08
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 29,797

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
Ответить с цитированием
  #8 (permalink)  
Старый 24.10.2016, 22:31
Новичок на форуме
Отправить личное сообщение для sirius1 Посмотреть профиль Найти все сообщения от sirius1
 
Регистрация: 24.10.2016
Сообщений: 3

Я собственно к чему это, читаю книгу, пытаюсь выполнить задание " В качестве упражнения напишите две функции, reverseArray и reverseArrayInPlase. Первая получает массив как аргумент и выдает новый массив - с обратным порядком элементов. Вторая работает как оригинальный метод reverse - она меняет порядок элементов на обратный в том массиве, который ей был передан в качестве аргумента. Не используйте метод reverse."
С первым все более менее понятно, второй написать не получается
var arrayValue = [1,2,3,4,5];
reverseArrayInPlase(arrayValue);
console.log(arrayValue)
//[5,4,3,2,1]
Ответить с цитированием
  #9 (permalink)  
Старый 24.10.2016, 22:33
Аватар для Aetae
Любитель
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 5,698

Массив(как и функция) - не примитивное значение. Он передаётся по ссылке.
__________________
29375, 35
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помощь новичку! Не работает скрипт saifuddin jQuery 3 12.11.2013 10:07
Помощь новичку SuperNoob Элементы интерфейса 3 20.04.2013 17:44
Работа с моделью MVC (помощь новичку) IONEX Серверные языки и технологии 7 07.02.2012 12:30
Jquery Ajax, помощь новичку mxwuser AJAX и COMET 2 04.09.2010 11:56
Помощь новичку Рон Элементы интерфейса 13 05.05.2010 17:14