2013-04-02 11 views
0

자바 스크립트 변수 범위 (단일 레벨)에 대한 약간의 혼란의 말을하자나는 두 가지 기능을 가지고

getCustomers를() - 고객이 getCustomerDetials()를 나열 얻을 - 나는 실행

각 고객의 세부 사항을 얻을 getCustomers() 그 기능은 자체 내에서 실행됩니다. getCustomerDetails() ... 분명히 모든 고객과 세부 정보를 나열해야합니다.

여기에 과정이 나와 있습니다.

getCustomers() 모든 고객 ID의 목록을로드하고 각 고객 ID를 통해 루프 :

for(i = 0; i < array_count; i++); 

있는 각 고객에 getCustomerDetails(id)을 발사. 각 세부 사항을 통해 루프

for(i = 0; i < array_count; i++); 

:

getCustomerDetails

는 자체 내부 루프를 실행합니다.

문제 : 부모 함수와 내부에서 실행되는 함수에서 실행되는 두 개의 동일한 for 루프가 있습니다.

기본적으로 내 innter for 루프 "i"변수는 루프 "i"변수의 부모를 업데이트하는 것으로 보이며 끝나지 않습니다!

내부 함수의 루프 "i"변수를 i2로 변경했으며 모두 잘 돌아갔습니다.

오랜 설명을 드려 죄송 합니다만, 정상적인 결과라고 예상하고 싶습니다. 또는 뭔가 내 코드가 잘못 되었나요?

저는 몇 가지 언어 (저는 숙련 된 PHP와 AS2 프로그래머입니다)를 다루었습니다. 전에이 콜리 전을 경험하지 못했습니다 ... 그렇지만 JS에서는 그렇게 좋지 않습니다.

+0

좋은 편집 @rightfold. 나는 가지고있다, [이미 물었다] (http://stackoverflow.com/q/14257323/472495). – halfer

답변

7

기능 내에서 선언 된 변수는 로컬로 유지됩니까?

; 문제는 변수를 함수 내부에 선언하지 않았다는 것입니다. 당신이 글로벌 변수를 사용하고,이 키워드없이

for (var i = 0; i < array_count; i++) 

:

사용

var 키워드는 변수를 선언합니다.


이 내용은 자바 스크립트 책에서 다뤄야합니다. 어느 쪽을 사용하고 있습니까?

+0

아 .. 감사합니다 .. 그냥 확인하고 싶었 .. PS 나는 JS 책이 없다.그냥 내 현재의 프로그래밍 논리에 가서 조정/JS, 온라인 샘플, 자습서 및 물건을 통해 JS를 배울려고. AS2에서 빨리 내 JS 피트에있어, 승/C 책을 통해 배웠고 거의 프로그래밍 10 년은 JS와 매우 비슷합니다. 이러한 단점과 같은 것들을 제외하고 ..이 문제는 AS2 ..와 PHP에서 결코 발생하지 않았습니다. anyweh. 다시 한 번 감사드립니다 – BrownChiLD

+0

제 질문은 책을 얻으려는 미묘한 프롬프트였습니다. 그래서 우리는 그 내용을 당신에게 답하는 형태로 반복하지 않아도됩니다. –

+0

아 맞다. hehe 감사합니다 .. 곧 하나 잡아 – BrownChiLD

관련 문제