亚洲精品中文字幕无乱码_久久亚洲精品无码AV大片_最新国产免费Av网址_国产精品3级片

效果

javascript是如何實(shí)現(xiàn)命名空間效果

時(shí)間:2021-06-20 19:55:04 效果 我要投稿

javascript是如何實(shí)現(xiàn)命名空間效果

  Javascript原生并不支持命名空間,需要變通來實(shí)現(xiàn)。

  在我們創(chuàng)建一個(gè)JavaScript庫時(shí),命名空間就顯得舉足輕重了,我們可以將組成這個(gè)JavaScript庫的零散的JavaScript文件(*.js)封裝在命名空間中,而無須定義全局的函數(shù)或類。比如在本章節(jié)多次出現(xiàn)的Person,我們就可以作為庫的一部分封裝到合適的命名空間中:

  Code 5-13:

  復(fù)制代碼 代碼如下:

  var com = {};

  com.anyjava = {};

  com.anyjava.Person = function(name) {

  //私有成員

  var _name = name;

  //訪問器

  this.getName = function() {

  return _name;

  };

  this.setName = function(name) {

  _name = name;

  };

  };

  //原型

  com.anyjava.Person.prototype = {

  eat:function() {

  alert(this.getName() + " is eating something.");

  },

  sleep:function() {

  alert(this.getName() + " is sleeping.");

  },

  walk:function() {

  alert(this.getName() + " is walking.");

  }

  };

  var dirk = new com.anyjava.Person("Dirk");

  dirk.eat();

  從Code 5-13中,我們得到了一個(gè)比較符合Java開發(fā)人員習(xí)慣的命名空間,而且在實(shí)例化Person對象時(shí),也要指定我們的命令空間路徑。

  這里說一個(gè)小技巧,如果你正在使用一個(gè)別人開發(fā)好的,且?guī)в斜容^完整的`命名空間規(guī)劃的JavaScript庫時(shí),可能你會對每次都寫冗長的命名空間趕到厭倦。比如說您正在使用我開發(fā)的JavaScript庫,在com.anyjava.control.ui命名空間下,有很多您要用到的擴(kuò)展UI控件,我估計(jì)您也不希望要書寫很多次的var xxx = new com.anyjava.control.ui.XXX()。通過指定命名空間別名的方式,我們可以書寫更少的重復(fù)代碼,如Code 5-14所示的另一種實(shí)例化Code 5-13中Person的方法:

  Code 5-14:

  復(fù)制代碼 代碼如下:

  var ns = com.anyjava;

  var dirk = new ns.Person("Dirk");

  dirk.eat();

  最后我將要說明的是,使用命名空間時(shí),需要注意的一個(gè)問題。在書寫JavaScript庫時(shí),大多數(shù)情況下命名空間聲明語句可能會同時(shí)出現(xiàn)在一個(gè)JavaScript文件的多個(gè)位置,或者是出現(xiàn)多個(gè)JavaScript文件中,但是JavaScript語言特性是最后聲明的變量會覆蓋前邊聲明的同名變量,這就需要我們注意重復(fù)聲明的問題,也就是說每次聲明命名空間對象時(shí),建議先判斷下這個(gè)命名空間對象是否已經(jīng)存在,如Code 5-15所示:

  Code 5-15:

  復(fù)制代碼 代碼如下:

  if (typeof com.anyjava == "undefined") var com.anyjava = {};

  這樣我們就能保證“com.anyjava”對象只聲明一次了。

【javascript是如何實(shí)現(xiàn)命名空間效果】相關(guān)文章:

如何實(shí)現(xiàn)JavaScript的DIV塊來回滾動(dòng)效果10-23

如何使用javascript實(shí)現(xiàn)瀑布流及效果加載04-27

JavaScript簡單實(shí)現(xiàn)放大鏡效果代碼04-26

JavaScript如何實(shí)現(xiàn)JSON.stringify04-26

如何使用JavaScript實(shí)現(xiàn)頁面定時(shí)跳轉(zhuǎn)10-17

如何使用JavaScript實(shí)現(xiàn)倒計(jì)時(shí)10-23

如何實(shí)現(xiàn)高效的復(fù)習(xí)效果03-09

如何基于JavaScript實(shí)現(xiàn)本地圖片預(yù)覽10-23

JavaScript重置表單的實(shí)現(xiàn)10-17