0
有兩種基本方式可以看到正在編寫的節點模塊。第一個設置要導出到其自己的財產上module.exports每個函數或變量:是否將module.exports分配給單獨的對象浪費存儲器
module.exports.foo = function() {
...
}
,第二個是創建具有您要導出的屬性的新對象,並指定module.exports即在文件的結尾:
var FooObject = {
foo: function() {
...
}
};
...
module.exports = FooObject;
第三件事,我有時會看到被設置module.exports到擁有所有你想要導出的屬性的對象,但對於這個討論的目的,這相當於我提到的第一種方法:
module.exports = {
foo: function() {
...
}
}
我們是通過第二種方式來浪費內存嗎(創建一個對象並指定module.exports)?我一直認爲,由於所有賦值都是引用,因此當您執行module.exports = {...}
時應該創建一個新對象,因此這兩個值相當。情況並非如此嗎?
並非所有的賦值都是引用,那只是對象(包括函數)。像字符串,數字,布爾值等基元總是被值複製。 – mscdex 2014-10-03 20:34:16
這很好,注意第一個選項意味着你需要模塊並調用它...''''''''''' 'FooObject');'...因爲第一個是聲明一個函數,第二個是聲明一個對象。 – incutonez 2014-10-03 21:37:50