developer tip

루프 내에서 함수를 만들지 마십시오.

optionbox 2020. 11. 15. 11:13
반응형

루프 내에서 함수를 만들지 마십시오.


이 경우 jslint 오류를 해결하는 올바른 방법은 무엇입니까? 이것을 사용하는 객체에 getter 함수를 추가하고 있습니다. 루프 내부에 함수를 생성하지 않고이 작업을 수행하는 방법을 모르겠습니다.

for (var i = 0; i<processorList.length; ++i) {
   result[i] = {
       processor_: timestampsToDateTime(processorList[i]),
       name_: processorList[i].processorName,
       getLabel: function() { // TODO solve function in loop.
            return this.name_;
       }
   };
}

함수를 루프 밖으로 이동합니다.

function dummy() {
    return this.name_;
}
// Or: var dummy = function() {return this.name;};
for (var i = 0; i<processorList.length; ++i) {
   result[i] = {
       processor_: timestampsToDateTime(processorList[i]),
       name_: processorList[i].processorName,
       getLabel: dummy
   };
}

... 또는 파일 맨 위에 있는 loopfunc옵션사용하여 메시지를 무시 하십시오.

/*jshint loopfunc:true */

참고 URL : https://stackoverflow.com/questions/10320343/dont-make-functions-within-a-loop

반응형