首頁  >  文章  >  web前端  >  JavaScript創建命名空間的多種玩法

JavaScript創建命名空間的多種玩法

autoload
autoload原創
2021-04-02 09:45:462146瀏覽

JavaScript創建命名空間的多種玩法

    在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,如:

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();

4.透過函數(function)建立:(較為簡潔)

var NameSpace = NameSpace || {}; 
NameSpace.Hello = new function() {   
    var self = this;   
    var name = 'world';   
    self.sayHello = function(_name) {    
     return 'Hello ' + (_name || name);  
      }; 
 };

推薦:《

2021年js面試題目及答案(大匯總)

以上是JavaScript創建命名空間的多種玩法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn