2017-10-03 12 views
0

이 코드 조각이 이러한 오류를 throw하는 이유를 설명 할 수 있습니까? ECMA 6은 현재 옵션이 아니며, $. i의 값을 클로저 내의 내부 변수에 저장하는 클로저 IIFE의 각 함수. 도와주세요 !JSHint 오류 : 범위를 벗어나는 변수를 참조하는 루프 내에서 선언 된 함수가 혼동하는 의미로 이어질 수 있습니다.

for(var i = 0; i < cityArray.length; i++) { 
    $.each(_cityCards, function(index, item) { 
     var cityName = $(this).attr('data-city'); 
     if(cityName == cityArray[i]) { 
      $(this).css('transform','scale(1)').delay(500).show(); 
     } 
    }); 
} 

답변

1

JSHint와 같은 사운드는 거기에있는 익명의 기능이 어떻게 반복해서 다시 만들어지고 있는지를 좋아하지 않습니다.

익명 함수를 꺼내 이름을 지정하면 어떻게 될까요?

그러면이 명명 된 함수를 루프 본문에서 다시 참조할까요?

e.e. like

function func (index, item) { 
    var cityName = $(this).attr('data-city'); 
    if(cityName == cityArray[i]) { 
    $(this).css('transform','scale(1)').delay(500).show(); 
    } 
} 

for(var i = 0; i < cityArray.length; i++) { 
    $.each(_cityCards, func); 
}