我必須製作模板模塊,每個模塊都有3個功能。例如,可以有module1.js
,其將具有exports.function1
,exports.function2
和exports.function3
。將有module2.js
其中也有相同的功能;只是功能會有所不同。使用導出創建模板
我使用WebStorm進行開發,當我鍵入exports.
時,它給我3個函數名稱作爲自動填充建議。
我的問題是,這些函數會相互覆蓋嗎?或者可以在不同的模塊中使用相同的函數名稱嗎?
我必須製作模板模塊,每個模塊都有3個功能。例如,可以有module1.js
,其將具有exports.function1
,exports.function2
和exports.function3
。將有module2.js
其中也有相同的功能;只是功能會有所不同。使用導出創建模板
我使用WebStorm進行開發,當我鍵入exports.
時,它給我3個函數名稱作爲自動填充建議。
我的問題是,這些函數會相互覆蓋嗎?或者可以在不同的模塊中使用相同的函數名稱嗎?
有沒有問題,如果您使用相同的名稱:exports
是,在覈心,一個簡單的對象,這是完美的罰款:
var obj = {a: 1};
var obj2 = {a: 2};
console.log(obj.a + obj2.a); // prints... 3!
原因WebStorm顯示了三個功能,是因爲它是無法靜態確定哪些實際可用。如果你運行代碼,你會確認它。
如果我錯了,糾正我,設置'exports = {}'時無效,而設置'module.exports = {}'很好。對? –
是的,沒錯!嗯,它不是*無效*說,但它不會更新外部 – Ven
@LittleChild是的,因爲第一個示例覆蓋現有的引用與一個新的 –
可能的重複[JavaScript是否有接口類型(如Java的'接口')?](http://stackoverflow.com/questions/3710275/does-javascript-have-the-interface-type-such- as-javas-interface) – cshion