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();
var NameSpace = NameSpace || {}; NameSpace.Hello = new function() { var self = this; var name = 'world'; self.sayHello = function(_name) { return 'Hello ' + (_name || name); }; };
prototype
에 공용 메서드를 작성합니다. (더 간결하게)🎜 🎜🎜rrreee🎜추천: "🎜2021 js 인터뷰 질문 및 답변(대요약)🎜"🎜위 내용은 JavaScript에서 네임스페이스를 만드는 다양한 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!