2014-01-09 2 views
0

저는 team이라는 Javascript 객체가 있습니다.자바 스크립트 객체의 변수에 액세스 할 수 없습니다.

을 console.log (팀) :

Object 
    name: "School name" 
    opa: 203 
    opf: 230 
    rri: 2429 
    town: "Hometown" 
    __proto__: Object 

좋아 보인다.

을 console.log (team.name) :

School name 

하지만 숫자 변수에 액세스하려고하면 ...

을 console.log (팀 나는 잘 학교 이름에 액세스 할 수 있습니다 .opa) :

0 

모두 "0"으로 인쇄됩니다. 이 프로그램은 이전에 올바른 변수를 출력하고 있었는데 관련이없는 변경을 한 후에 프로그램이 멈추었습니다. 이제는 시도 할 때마다 변수에 액세스 할 수 없습니다. 몇 가지 다른 브라우저를 시도하고 모든 브라우저에서 발생합니다. 나는이 문제를 더 디버깅하는 방법을 놓치고있다. 또한

, 내가

team.opa = 76; 

처럼 뭔가를 할 경우 내가 그 76 잘 액세스 할 수 있지만 그것은 "팀"아무것도의 값을 변경하지 않습니다.

+1

"관련이없는 변경을 한 후에"중지 된 경우 변경 사항과 관련이 없습니다. 더 많은 코드를 표시하거나 변경 사항을 되돌립니다. – rgtk

+0

그건 바닐라 자바 ​​스크립트 구문이 아닙니다. 아마 ActionScript인가요? – DOK

+0

'Object.getOwnPropertyDescriptor (team, 'opa')는 무엇을 드러내나요? 이러한 속성과 같은 소리는 사용자 정의 getter/setter가 정의되어 있거나 쓰기 가능하지 않을 수 있습니다. –

답변

3

개체 로깅을 시작하기 전에 AJAX 요청이 완료 될 때까지 기다리지 않고 있습니다. 즉, AJAX 요청이 완료되면 콘솔에 기록 된 개체를 덮어 씁니다 (console.log은 동적이며 변경할 수 있음). 비록 당신이 그것들을 로그 한 후에도, 이것은 스칼라 값에 대해서는 사실이 아니다).

console.log(JSON.stringify(teams[id], null, 2)); 

을하지만 궁극적으로, 당신은 당신의 전체 로깅 루프를 이동해야 (또는 당신은 teams 배열 할 원하는) 내부 $.get() 콜백 :

대신, 로깅 루프에서 이것을 시도 .

+0

예! 고맙습니다. 내가 만든 변경 중 하나는 "jQuery.ajaxSetup ({async : false});" 왜냐하면 내가 그것을 사용하고 있던 것이 더 이상 필요하지 않았기 때문이다. 그러나 지금 나는 다른 이유 때문에 여전히 그것을 필요로한다. 다시 추가 한 후 스크립트가 다시 작동했습니다. –

관련 문제