exports module of node js

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


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

上面两块代码,均可返回一个exports对象,两者的区别在于,前者,exports对象中有setName、sayHello方法,后者,exports对象中又有Hello对象,其中Hello对象有setName、sayHello方法。

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

这个模块,返回的也是exports,但它不算是对象,仅是Hello对象的引用。

其中外部若想获得Hello对象,第二块代码需要通过require('第二块代码').Hello,而第三块代码则仅需要require('第三块代码')即可获得Hello对象。

不知道可不可以这么说:exports是个打酱油的。

猜你喜欢

转载自songkang666.iteye.com/blog/1874438
今日推荐