> 웹 프론트엔드 > JS 튜토리얼 > JavaScript에서 네임스페이스를 만드는 다양한 방법

JavaScript에서 네임스페이스를 만드는 다양한 방법

autoload
풀어 주다: 2021-04-02 09:45:46
원래의
2190명이 탐색했습니다.

JavaScript에서 네임스페이스를 만드는 다양한 방법

JavaScript의 전역 변수는 종종 이름 충돌을 일으키고 때로는 변수를 다시 작성하는 것조차 상상한 순서와 다르므로 Global을 피하기 위해 변수 이름이 충돌하는 경우 네임스페이스를 만드는 것이 최적의 솔루션이 됩니다. JavaScript中全局变量经常会引起命名冲突,甚至有时侯重写变量也不是按照你想像中的顺序来的,所以为了避免全局变量名冲突,创建命名空间成为最优解。

1.通过闭包(Closure)和Object实现

    在闭包中声明好所有变量和方法,并通过一个JSON Object返回公有接口:

var NameSpace = NameSpace || {};
 NameSpace.Hello = (function() {   
 //待返回的公有对象  
  var self = {};   
  //私有变量或方法   
  var name = 'world';  
   //公有方法或变量   
   self.sayHello = function(_name) {    
    return 'Hello ' + (_name || name);  
     } ;   
     //返回的公有对象   
     return self; 
}());
로그인 후 복사

2.通过JSON对象创建Object,代码如下:

var NameSpace = NameSpace || {}; 
NameSpace.Hello = {     name: 'world'   , sayHello: function(_name) {   
  return 'Hello ' + (_name || this.name);  
   }
 };
로그인 후 복사

3.通过函数(function)创建:(较为复杂)

这是一种比较常见的写法,通过声明一个function实现,函数里设置初始变量,公共方法写入prototype

1. 클로저와 객체를 통해 구현

클로저의 모든 변수와 메소드를 선언하고 JSON Object 공용 인터페이스:

var NameSpace = NameSpace || {}; 
/* Function */ 
NameSpace.Hello = function() {   
    this.name = 'world'; 
}; 
NameSpace.Hello.prototype.sayHello = function(_name) {   
    return 'Hello ' + (_name || this.name); 
}; 
var hello = new NameSpace.Hello(); 
hello.sayHello();
로그인 후 복사

2. JSON 객체를 통해 객체를 생성합니다. 코드는 다음과 같습니다. 🎜🎜🎜
var NameSpace = NameSpace || {}; 
NameSpace.Hello = new function() {   
    var self = this;   
    var name = 'world';   
    self.sayHello = function(_name) {    
     return 'Hello ' + (_name || name);  
      }; 
 };
로그인 후 복사
🎜🎜🎜3. 함수를 통해 생성: (더 복잡함)🎜🎜🎜🎜 이것은 비교적 일반적인 작성 방법입니다. code>function, 함수의 초기 변수를 설정하고 🎜rrreee🎜🎜🎜4와 같이 prototype에 공용 메서드를 작성합니다. (더 간결하게)🎜 🎜🎜rrreee🎜추천: "🎜2021 js 인터뷰 질문 및 답변(대요약)🎜"🎜

위 내용은 JavaScript에서 네임스페이스를 만드는 다양한 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿