2
루프 내에서 두 개의 익명 함수가 생성되었지만 jshint
은 anon 함수가 전달되지 않은 변수를 참조 할 때만 경고를 표시합니다.jslint 경고 "외부 변수를 참조하는 함수에 대해서만"루프 내에서 함수를 작성하지 마십시오 "?
왜 이런가요?
(function(){
for(var i=0; i<5; ++i){
var age = 9001;
//This has a jshint warning, as it uses age
var cutoffs = [1800,12000].map(function(cutoff){
return cutoff < age;
});
//but this doesn't cause a warning, despite creating a function inside a loop
var cutoffs2 = [1800,12000].map(function(cutoff){
return cutoff < 42;
});
}
})();
그냥 이것을 무시하면 linting이 좋지 않으며 루프 내부에서 함수를 선언했다고 생각합니다. – Eric
@Eric하지만 루프 내부에서 함수를 선언하고 있는데, 루프 내부에서 선언 된 두 함수에 대해 경고를 표시하지 않는 이유에 대해 궁금합니다. – mtfurlan
reduce 함수가 클로저의 어떤 것도 참조하지 않기 때문에 런타임에 최적화 될 수 있습니까? 이것을 기반으로하는 것은 없지만, 그것은 두 가지 사이의 한 가지 차이점입니다. –