Задать вопрос

Что создается таким образом?

Здравствуйте, Уважаемые разработчики.
Изучаю JavaScript и немного запутался в одном коде. Помогите, пожалуйста, кто знает.

Знаю, что таким образом создается объект:
var animatedSlider = new AnimatedSlider();

но непонятно зачем еще внутри еще одни фигурные скобки:
var animatedSlider = new AnimatedSlider({ //вот эти скобки не пойму для чего
   ids: {'slider':'main_slider'}, // тут создаем объект ids, с ключом 'slider' и значением 'main_slider'
   slides: [ //Создаем массив slides
      { //Создаем объект
         // Тут код
      },
      { //Создаем объект
         // Тут код
      }
   ]
})


Дальше, куда все дело передается, вот эти строчки вообще ввели в полный ступор, хотя по отдельности прочитал про всё, что тут используется, но до конца не могу понять:
window.AnimatedSlider.prototype.init = function () {
   // Вроде как в глобальном объекте window ищется объект AnimatedSlider (который создали выше), 
   // а вот что дальше не пойму.
}

а также вот тут:
tut_kod.on('beforeChange', $.proxy(function (e, slick, prev, i) {
   // Понимаю что устанавливается обработчик события на 'beforeChange', но что такое $.proxy не понимаю.
}


Заранее большое спасибо!
  • Вопрос задан
  • 210 просмотров
Подписаться 1 Оценить 1 комментарий
Решения вопроса 1
vokar97
@vokar97
javascript, node.js
Первых два ваших вопроса возникли из-за незнания таких аспектов языка, как конструкторы ( https://learn.javascript.ru/constructor-new ) и прототипы ( https://learn.javascript.ru/prototypes ).

После прочтения материалов по приведенным выше ссылкам у вас, скорее всего, не должно остаться вопросов, но как поясняющий пример можно привести такой код:
function User(data) {
	this.firstName = data.firstName;
	this.lastName = data.lastName;
}

var bobMarley = new User({ // Скобки '{', т. к. передаем объект в качестве параметра
	firstName: 'Bob',
	lastName: 'Marley'
});

// Задаем прототипу метод, соответственно он появляется у всех экземпляров, созданных с помощью new User(), а не только у bobMarley, как было бы в случае присвоения метода напрямую bobMarley
User.prototype.getFullName = function() {
	return `${this.firstName} ${this.lastName}`;
};

console.log(bobMarley.getFullName()); // Bob Marley


Что касается, последнего вопроса, нужно смотреть соответствующее API.
В вашем случае это функция, которая устанавливает this функции, переданной в качестве первого параметра, значение второго параметра, например:
$.proxy(function() { console.log(this); }, {isExample: true })(); // Выведет {isExample: true}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Stalker_RED
@Stalker_RED
вот эти скобки не пойму
Праметры, которые передаются в конструктор

в глобальном объекте window ищется объект ... а вот что дальше не пойму
Да, ищется обект, затем его прототип, и прототипу добавляется метод init.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы