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

Создание объекта с использованием jQuery селекторов?

Пытаюсь создать объект:

var obj = {<br>
                wrapper: $(".prx"),<br>
                slides: $(".prx__slides"),<br>
                slidesItems: this.slides.children(),<br>
                ...<br>
            };<br>




Почему slides при использовании в slidesItems является undefined?
  • Вопрос задан
  • 3237 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
@Masterme
Работа с объектами в JS немного отличается от классической схемы в других языках. Нет ключевого слова class и нет деструкторов. Вот так объявляется класс и создаётся экземпляр класса:

var Obj = function Obj(){
  this.wrapper = $('.prx')
  this.slides = $('.prx_slides')
  this.slidesItems = this.slides.children()
}

var obj = new Obj()

функция — это конструктор, автоматически вызываемый при создании

Моар: learn.javascript.ru/constructor
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
d4rkr00t
@d4rkr00t
Потому что в данном случае this ссылается на глобальный контекст в котором нет свойства slides, попробуйте завернуть this.slides.children() в анонимную функцию как-то так:

slidesItems: function() {
    return this.slides.children();
}
Ответ написан
Ваш ответ на вопрос

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

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