由於我是Node.js
的新手,我正在尋找一些信息,編寫一些測試內容並閱讀其他人的代碼。this.prototype和module.exports之間的區別?
我見過創建/需要(使用)模塊是典型的Node.js
。我見過定義模塊內的「公共」的方法和功能的不同方式,似乎都工作了相同的方法:
module.exports
this.prototype
是否有一個顯着的區別使用一個還是另一個?或者,做同樣的事情只是不同的方式?這兩個更好,還是取決於上下文?
由於我是Node.js
的新手,我正在尋找一些信息,編寫一些測試內容並閱讀其他人的代碼。this.prototype和module.exports之間的區別?
我見過創建/需要(使用)模塊是典型的Node.js
。我見過定義模塊內的「公共」的方法和功能的不同方式,似乎都工作了相同的方法:
module.exports
this.prototype
是否有一個顯着的區別使用一個還是另一個?或者,做同樣的事情只是不同的方式?這兩個更好,還是取決於上下文?
您應該使用exports
將屬性附加到預定義的導出對象或將module.exports
重新指定給您自己的對象。後者在導出構造函數時很常見。
exports.foo = function() { console.log('Hello world!'); };
exports.add = function(a, b) { return a + b; };
// Then the module might be used like so:
// var mymodule = require('./mymodule');
// mymodule.foo();
// console.log(mymodule.add(1, 9));
或更換exports
對象:
function Foo() {
}
module.exports = Foo;
// then typically users do this in their script:
// var Foo = require('./mymodule');
// var myFoo = new Foo();
是的,'module.exports'和'exports'是同樣的事情嗎?他們很酷解釋[這裏](http://www.sitepoint.com/understanding-module-exports-exports-node-js/)! – charliebrownie 2015-01-15 16:51:22
它是'module.exports',但是,它們最初是*相同的東西。但是'module.exports'允許你重寫導出的對象,如我的例子所示。 – mscdex 2015-01-15 16:52:28
你說得對,我拼寫錯了,謝謝你指出。只是編輯了整個事情。謝謝! – charliebrownie 2015-01-15 16:57:56
從來沒有一次看到'this.prototype'用於定義的模塊。您應該始終遵循[documentation](http://nodejs.org/api/modules.html)中定義的方法。 – 2015-01-15 16:38:30
@BenFortune我在閱讀別人的代碼時發現'this.prototype'。看看[這個代碼](https://github.com/ttezel/twit/blob/master/examples/bot.js) – charliebrownie 2015-01-15 16:47:32
你鏈接的代碼中沒有'this.prototype' ... – mscdex 2015-01-15 16:53:25