Почему целое число отображается на консоли, когда ссылка на объект регистрируется там? - PullRequest
0 голосов
/ 02 февраля 2012

Я работаю над приложением, которое использует литералы объектов для представления групп, тем и задач. Существует также объектный литерал, который обрабатывает ввод команд из «интерфейса командной строки» приложения.

Когда пользователь нажимает на тему, объект команды устанавливает свое свойство obj, чтобы ссылаться на объект, который представляет то, на что щелкнули. То есть: пользователь щелкает заголовок группы, и теперь command.obj представляет объект группы.

Приведенная ниже функция находится в литерале объекта command и показывает, как устанавливается this.obj. Он вызывается при щелчке элемента, этот элемент представляет собой переменную obj, переданную в функцию:

/* defines taxonomy and obj of clicked element */
set_taxonomy: function(obj){
    if( $(obj).hasClass('group-title') ){
        this.taxonomy = $.trim('group');
        this.obj = group;
        }
    else if($(obj).hasClass('topic-title') ){
        this.taxonomy = $.trim('topic');
        this.obj = topic;
        }
    else if( $(obj).hasClass('task') ){ 
        this.taxonomy = $.trim('task');
        this.obj = task;
        }

    console.log(this.obj);

    this.set_commands();

},

group, topic, and title - литералы объектов, которые загружаются автоматически. При щелчке по темам и заголовкам console.log(this.obj) печатает object со всеми соответствующими свойствами и функциями.

При нажатии на группу отображается номер 3.

Что означает 3?

См. Пример объекта рабочей темы: http:// pastebin.com/NEmKHdzc

См. Пример объекта нерабочей группы: http://pastebin.com/ezPghLbM

Ответы [ 2 ]

2 голосов
/ 02 февраля 2012

Вы уверены, что группа установлена ​​правильно?Попробуйте console.log(group) в первом операторе if.Если вы получите 3, я бы перепроверил (с большим количеством console.log вызовов), что вы правильно настраиваете группу.

1 голос
/ 02 февраля 2012

Вы уверены, что группа является литералом объекта? Недостаточно информации, чтобы предположить, что группа на самом деле не равна 3.

console.log(group === 3);
...