.js 파일에있는 스크립트에는 많은 함수가 있습니다. 다른 사람이 작성한 다른 스크립트가 내 스크립트에서와 같은 함수 이름을 사용하는 경우 어떻게 동일한 페이지 내의 내 함수 이름과의 충돌을 피할 수 있습니까?함수 이름 지정 규칙과의 충돌을 피하십시오. javascript
이 방법이 있습니까?
.js 파일에있는 스크립트에는 많은 함수가 있습니다. 다른 사람이 작성한 다른 스크립트가 내 스크립트에서와 같은 함수 이름을 사용하는 경우 어떻게 동일한 페이지 내의 내 함수 이름과의 충돌을 피할 수 있습니까?함수 이름 지정 규칙과의 충돌을 피하십시오. javascript
이 방법이 있습니까?
를 사용하여 네임 스페이스 ..
var company = {};
company.doSomething = function() {
};
company.project = {};
company.project.submodule = {};
company.project.submodule.doSomething = function() {};
당신이 당신의 스크립트 밖에서 그 기능에 액세스 할 필요가없는 경우는 즉시 호출 함수 표현식에 전체 스크립트를 래핑 할 수 있습니다
(function() {
// Your code here
}());
이를 새로운 범위를 도입하므로 그 안에있는 모든 선언은 그 안에 표시되지 않습니다.
당신은 "네임 스페이스"의 방법으로 당신의 기능을 노출, 해당 범위의 외부 액세스를 필요로 할 경우
var YourStuff = (function() {
// Private functions etc...
// Expose public methods
return {
someMethod: function() {}
};
}());
을 충돌의 기회를, 당신은 단지 하나의 글로벌 식별자를 소개하는이 방법을 복용 줄임으로써 . 당신은 다음과 같은 방법을 호출 할 수 있습니다 : u는 클래스 내부에 포장하는 경우
YourStuff.someMethod();
@ alex23 - 어떻게 타이밍에 영향을 미칠 수 있습니까? 그리고 "클로저 오버랩"이란 무엇을 의미합니까? –
@ alex23 - 그렇습니다. 자바 스크립트에는 "비공개"와 같은 것이 없습니다. IIFE는 다른 함수 호출과 마찬가지로 평가 된 후에 실행됩니다. 그것은 DOM과 아무 관련이 없습니다. DOM 준비가 될 때까지 기다릴 필요가 있다면 IIFE 내에서 DOM 준비 짝수 처리기를 사용할 수 있습니다. –
u는 완전히 피할 수는 없지만, 그 정도 의미 –
_some 다른 guys_의 것? – Halcyon