>웹 프론트엔드 >JS 튜토리얼 >JavaScript 프로그래밍_javascript 기술에 네임스페이스를 도입하기 위한 방법 및 코드

JavaScript 프로그래밍_javascript 기술에 네임스페이스를 도입하기 위한 방법 및 코드

WBOY
WBOY원래의
2016-05-16 19:10:36944검색

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...*/}
}
}

많습니다. 이 방법을 사용하면 트리처럼 더 직관적이지만 노드가 조금 더 많은 한 눈은 이러한 노드 사이의 관계를 찾는 데 바쁩니다. 네임스페이스 접근 방식은 이 관계 트리를 설명하는 것입니다. 수평적으로, 계층적 관계를 직접적으로 표현한 것인데, 두 가지 방식은 말 그대로 동일한 효과를 가지지만, 글쓰기 방식이 서로 다른 특징을 가지고 있습니다.

메서드 하나 더 확장:

NameSpace.prototype.appendChild = function(ns){
for (var key in ns){
this[key] = ns[key ];
}
반환
}
NameSpace.prototype.copyChild = NameSpace.prototype.appendChild;

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.