6개의 요소가 포함된 함수에 배열 변수를 정의한 다음 함수에서 콜백 함수를 호출했습니다. 콜백 함수에서는 배열 변수의 값에 액세스할 수 없지만 길이 속성에는 액세스할 수 있습니다. 매우 혼란스럽고 어떻게 해결해야 할지 모르겠습니다.
으아악Book.getBookByISBN()은 제가 다른 모듈에서 정의한 함수입니다
ringa_lee2017-05-16 13:37:48
이유는 앞서 언급한 바 있습니다. 사실 Book.getBookByISBN() 함수에서 콜백 호출을 정의하는 bookArr[i]를 전달하기 위한 것입니다. 형식 매개변수와 실제 매개변수를 이해하세요.
漂亮男人2017-05-16 13:37:48
이것은 전형적인 비동기 문제이며, i의 범위는 여전히 그 안에 있습니다.
무시적으로 기다리고 있으니까요 getBookByISBN
方法调用callback的时候 i=bookARR.length
。这已经越界了,所以是undefined
.
해결책:
1. 폐쇄
2.let