를 JSLint '가 정의되기 전에 함수가 사용 된'원인 :의 네임 패턴은 나는 다음과 같은 네임 스페이스 지정 패턴을 사용하고 오류
var MyNamespace = new function() {
var foo = function() {
bar();
};
var bar = function() {
alert("bar");
};
this.init = function() {
foo();
};
};
$(document).ready(function() {
MyNamespace.init();
});
JSLint가 정의되기 전에 bar
사용하는 것이 뿌려줍니다. 그러나 foo
은 bar
이후에야 호출됩니다. 코드는 내가 시도한 모든 브라우저에서 잘 작동합니다. http://jsfiddle.net/jDKvz/
패턴은 How do I declare a namespace in JavaScript?, 두 번째 대답입니다.
여기에서 뭔가를 수정해야합니까, 아니면 JSLint를 무시해야합니까?
아마도 두 함수의 순서를 바꾸면 JSLint는 만족 스러울 것입니다. 그러나 "필요하다"는 것이 주관적인지 여부입니다. 모든 것에 대해 JSLint에 동의하지는 않지만,이 경우에는 코드를 변경하여 코드를 닫을 수 있습니다. – nnnnnn
@nnnnnn 제 실제 프로젝트는 훨씬 더 복잡하며, 예를 들어 서로를 호출하는 함수를 포함 할 수도 있습니다. – Flash
이 경우 나는이 시점에서 JSLint를 무시하게되어 매우 기쁩니다. 'var foo = function() ...'대신에'function foo() ...'구문을 사용하여 어떤 차이가 있는지 확인해 볼 수는 있지만, 어떤 종류의 경고/오류를 기억해야하는지 고민해야하기 때문에 실제로 걱정할 ... – nnnnnn