JSLint : 정의 된 오류 전에 함수 사용
JSLint를 사용하여 대부분의 외부 Javascript 파일을 확인하고 있지만 가장 큰 오류는 정의되기 전에 사용중인 함수에서 발생합니다.
이것이 제가 걱정해야 할 문제 입니까?
Firefox, IE7 및 Chrome은 상관하지 않는 것 같습니다. JSLint에 따르면 인기있는 init()
(자주 사용하는) 기능은 일반적으로 상단에 고정 main()
되어 있습니다.
function
키워드를 사용하여 함수를 선언하면 선언 되기 전에 사용할 수 있습니다. 그러나 다른 메서드 (예 : 함수 식 또는 Function
생성자 사용)를 통해 함수를 선언하는 경우 함수를 사용하기 전에 선언해야합니다. 자세한 내용 은 Mozilla 개발자 네트워크 의이 페이지 를 참조하십시오.
function
키워드로 모든 함수를 선언한다고 가정하면 프로그래밍 스타일의 질문이된다고 생각합니다. 개인적으로 저는 논리적으로 보이고 코드를 가능한 한 읽기 쉽게 만드는 방식으로 함수를 구조화하는 것을 선호합니다. 예를 들어, 당신처럼 init
모든 것이 시작되는 곳이기 때문에 함수를 맨 위에 놓았습니다 .
이것은 최고 등급의 Google 히트작이며 다른 사람들이 jslint 도구에서 처음에는이를 보지 못할 수 있으므로 이러한 유형의 오류를 숨길 수있는 "잘못된 순서 정의 허용"이라는 옵션이 있습니다.
/*jslint latedef:false*/
jshint를 사용하는 경우으로 설정할 latedef
수 nofunc
있으며, 이는 후기 함수 정의 만 무시합니다.
문서-http: //www.jshint.com/docs/options/#latedef
사용 예 :
/* jshint latedef:nofunc */
noop();
function noop() {}
도움이 되었기를 바랍니다.
jslint 웹 사이트 ( http://www.jslint.com/lint.html )에서 다른 곳에서 선언 된 것으로 간주되는 변수를 설정할 수있는 / * global * / 지시문에 대해 읽을 수 있습니다.
다음은 예입니다 (파일 맨 위에 놓기).
/*global var1,var2,var3,var4,var5*/
: true : false는 실제로 내 경험에서 필요하지 않지만 사이트에서 읽은 내용에서 권장되는 것처럼 보입니다.
초기 전역 문이와 같은 줄에 있는지 확인하십시오 /*
. 그렇지 않으면 중단됩니다.
jshint
모든 파일 에 대해이 경고를 비활성화하려면 다음을 파일에 배치 .jshintrc
하십시오.
{
"latedef": false
}
당신의에서 .jshintrc
파일, 설정 :
"latedef": "nofunc",
latedef 옵션이 제거 된 것은 매우 유감입니다. 이것은 상단에 인터페이스가있는 '클래스'를 만들려고 할 때 필수적입니다.
function SomeClass() {
var self = this;
self.func = func;
function func {
...
}
}
이 스타일은 매우 일반적이지만 정의되기 전에 func가 '사용'되기 때문에 jsLint를 전달하지 않습니다. 각 '멤버'기능에 글로벌을 사용해야하는 것은 총체적인 고통입니다.
항상 상단에 문제가되는 함수를 선언 할 수 있습니다.
예 : var init;
....하지만 진정한 정의에 도달하면 "var"를 제거해야합니다.
init = function () {};
참고 URL : https://stackoverflow.com/questions/806163/jslint-using-a-function-before-its-defined-error
'code' 카테고리의 다른 글
파이썬 목록을 사전으로 변환 (0) | 2020.10.28 |
---|---|
C ++에서 이중 포함 가드 사용 (0) | 2020.10.28 |
nVidia Quadro와 Geforce 카드의 차이점은 무엇입니까? (0) | 2020.10.27 |
Java 8 Comparator 유형 추론에 의해 매우 혼동 됨 (0) | 2020.10.27 |
Visual Studio 2015 충돌 (0) | 2020.10.27 |