JavaScript 코드의 가장 일반적인 구문 형식은 함수 function xxx(){/*code...*/}를 정의하는 것입니다. 함수 이름은 충돌하기 쉽습니다. 특히 여러 js 파일이 도입되면 충돌이 특히 두드러집니다. 따라서 네임스페이스를 도입할 필요가 있습니다.
Javascript 자체에는 네임스페이스 개념이 없으며 객체로 시뮬레이션해야 합니다.
예를 들어 네임스페이스를 생성하기 위한 네임스페이스 클래스를 정의합니다.
function NameSpace(){
}
이것은 생성자이지만 아무 작업도 수행하지 않으며 다음을 수행합니다. 댓글 관련 코드:
var comment = new NameSpace()
comment.list = function(){/*code...*/}
comment.counter = 0; 🎜>
첫 번째 줄은 comment라는 이름의 소위 네임스페이스(실제로는 빈 개체)를 생성하고, 두 번째와 세 번째 줄은 이 공간에 두 가지 메서드를 정의합니다. 호출 시 comment.list() 또는 comment.counter를 사용할 수 있습니다.
하위 네임스페이스 생성:
comment.add = new NameSpace()
comment.add.post = function( ){/*code...*/}
comment.add.check = function(){}
네임스페이스 개념을 도입한 이유는 동일한 함수 이름의 문제를 피하기 위해서입니다. . 위의 프로세스는 다음과 같이 정의할 수도 있습니다.
var comment = {
list : function(){/*code...*/},
add : {
post : function( ){/*code...*/},
check : function(){/*code...*/}
}
}
prototype.js 있음 이 방법을 사용하면 트리처럼 더 직관적이지만 노드가 조금 더 많은 한 눈은 이러한 노드 간의 관계를 찾기에 바쁩니다. 네임스페이스 접근 방식은 이 관계 트리를 수평적으로 설명하는 것입니다. , 그리고 계층적 관계를 직접적으로 표현한 것인데, 두 가지 방식은 동일한 효과를 가지지만, 글쓰기 방식이 서로 다른 특징을 가지고 있습니다.