2012-02-02 1 views
0

나는 개체 리터럴을 사용하여 그룹, 주제 및 작업을 나타내는 응용 프로그램을 만들고 있습니다. 또한 응용 프로그램의 "명령 줄 인터페이스"에서 명령 입력을 처리하는 객체 리터럴도 있습니다.개체 참조가 거기에 기록 될 때 정수가 콘솔에 표시되는 이유는 무엇입니까?

사용자가 항목을 클릭하면 명령 개체는 클릭 한 내용을 나타내는 개체를 나타내는 obj 속성을 설정합니다. 즉 : 사용자가 그룹 제목을 클릭하면 이제 command.obj이 그룹 개체를 나타냅니다.

아래 기능은 command 개체 리터럴에 있으며 this.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가 자동으로로드되는 객체 리터럴 : 그것은 요소를 클릭 할 때 호출되는, 그 요소는 함수에 전달 된 obj VAR입니다. 주제와 제목을 클릭하면 console.log(this.obj)object의 모든 속성과 기능을 인쇄합니다.

그룹을 클릭하면 3이 표시됩니다.

3은 무엇을 의미합니까? HTTP : 당신이 그룹은 객체 리터럴 확인 http://pastebin.com/ezPghLbM

+0

클래스에 "toString"함수가 정의되어있을 수도 있습니다. – Pointy

+0

[여기] (http://jsfiddle.net/b9u68/)는 "그룹"개체에 대해 재미있는 사실이 없음을 보여주는 jsfiddle입니다. – Pointy

답변

2

그룹이 올바르게 설정되어 있습니까? 첫 번째 if 문에서 console.log(group)을 시도하십시오. 당신이 3을 얻는다면, 나는 당신이 처음에 그룹을 적절하게 세우고 있다는 것을 두 번 체크 할 것입니다 (더 많은 console.log 콜을 가지고).

+0

얼굴을 때린다! 나는 무언의 for 문에서 '그룹'을 순진하게 사용했다. 오늘의 교훈은 분명히 가변 범위에 있습니다. 다른 곳에서 기록 (그룹)을하도록 격려해 주셔서 감사합니다. 원하는 그룹 객체가 페이지로드에 존재한다는 것을 알았습니다. 그런 다음 나중에 == 3이었습니다. 내가 찾은 곳에서 발견 된 수색과 교체. 감사. – kevtrout

+0

BTW : 3은 '그룹'을 재설정하고있는 for 루프의 마지막 배열 색인에서 나온 것입니다. – kevtrout

+0

변수를'var'으로 선언하고 있습니까? 그룹의 재사용이 자신의 기능 (그룹이 정의되거나 사용되는 기능이 아닌)에 있다고 가정하면 맨 위에 'var group'을 사용하여 문제를 해결해야합니다. 일반적으로'var'을 사용하는 것은 좋은 습관입니다 - 함수를 호출하고 관심있는 변수를 덮어 쓰는 것이 오류임을 깨닫는 것보다 더 재미있는 것은 없습니다. – Retief

1

위치 : // pastebin.com/NEmKHdzc

이 아닌 작업 그룹 개체의 예를 참조하십시오

는 작업 항목 개체의 예를 참조하십시오? 그룹이 실제로 3이 아니라고 가정하는 정보가 충분하지 않습니다.

+0

'console.log (group === 3);'false'를 출력합니다. 'console.log (group == 3);'그러나 'true'를 인쇄합니다. – kevtrout

+0

당신은 그 vars를 선언하고 있습니까? 에서와 같이,'var group = {};'? 아마도 (글로벌) 그룹 var가 다른 곳에서 다시 정의 될 것입니다. – badsyntax

관련 문제