91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

(三)、node.js的模塊和包

發布時間:2020-08-05 12:19:30 來源:網絡 閱讀:473 作者:七羽燕 欄目:web開發

我們做東西不可能把所有的功能都放在一起,那樣會相互影響,我們需要把他們分門別類,

讓他們各自執行各自的功能,這就是包或者模塊,包和模塊這兩個概念經常地會用,其實他倆講的是一個東西

而在node.js中一個文件就是一個包

下面我們就來具體的講解一下:

Node.js 提供了 exports 和 require 兩個對
象,其中 exports 是模塊公開的接口,require 用于從外部獲取一個模塊的接口,即所獲
取模塊的 exports 對象。
讓我們以一個例子來了解模塊。

創建一個module.js的文件,內容如下

var name;

function setName(thyName){
  name = thyName;
};

function sayHello(){
  console.log('Hello ' + name);
};

//導出模塊
exports.setName = setName;
exports.sayHello = sayHello;
再創建一個文件getmodule.js
//獲取模塊   require('./文件名'),不需要后綴
var myModule = require('./module');

myModule.setName('MyDuoEr');
myModule.sayHello();

運行命令

(三)、node.js的模塊和包

這個例子有點類似于創建一個對象,但實際上和對象又有本質的區別,因為
require 不會重復加載模塊,也就是說無論調用多少次 require,獲得的模塊都是同一個。
我們在 getmodule.js 的基礎上稍作修改:

//獲取模塊
var hello1 = require('./module');
hello1.setName('MyDuoEr'); 

var hello2 = require('./module');
hello2.setName('MyDuoEr 2'); 

hello1.sayHello();

 

運行命令

(三)、node.js的模塊和包

運行后發現輸出結果是 Hello MyDuoEr 2,這是因為變量 hello1 和 hello2 指向的是

同一個實例,因此 hello1.setName 的結果被 hello2.setName 覆蓋,最終輸出結果是
由后者決定的。 

 覆蓋 exports
有時候我們只是想把一個對象封裝到模塊中,例如:

function Hello() {
  var name;
  
  this.setName = function (thyName) {
    name = thyName;
  }; 

  this.sayHello = function () {
    console.log('Hello ' + name);
  };
};


exports.Hello = Hello;
此時我們在其他文件中需要通過 require('./singleobject').Hello 來獲取
Hello 對象,這略顯冗余,可以用下面方法稍微簡化:

function Hello() {
  var name;
  
  this.setName = function(thyName) {
    name = thyName;
  };
  
  this.sayHello = function() {
    console.log('Hello ' + name);
  };
};

module.exports = Hello;


這樣就可以直接獲得這個對象了:

var Hello = require('./hello');

hello = new Hello();
hello.setName('MyDuoEr');
hello.sayHello();

注意,模塊接口的唯一變化是使用 module.exports = Hello 代替了 exports.Hello=
Hello。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

甘肃省| 乳山市| 锡林浩特市| 定襄县| 周口市| 蕉岭县| 浦江县| 亚东县| 房山区| 嘉禾县| 西乌珠穆沁旗| 周口市| 漳州市| 德令哈市| 高密市| 大庆市| 沙湾县| 灌南县| 疏附县| 永丰县| 沁阳市| 夏邑县| 南澳县| 盈江县| 砀山县| 宿松县| 乐安县| 丽水市| 德钦县| 新泰市| 奉化市| 承德县| 新源县| 威信县| 义马市| 潮安县| 潜山县| 社会| 繁峙县| 神木县| 嘉鱼县|