[英]Javascript: Sharing a function between files
文件A.js
function addEvent(param1, param2) => {
// do something
})
model.exports = function aFunctionThatUsesAddEvent(param1, param2) {
addEvent(param1, param2) // This works fine.
})
文件B.js
const FileA = require(__dirname + '/..fileA');
function letsAddEvent(param1, param2) {
FileA.addEvent(param1, param2) {
// I get an error: FileA.addEvent is not a function
})
})
我試過用
model.exports = function addEvent(param1, param2) => {})
但是隨后aFunctionThatUsesAddEvent
不能調用addEvent(param1, param2)
如何聲明一個既可以在本地使用又可以被另一個文件使用的函數?
文件A.js
function addEvent(param1, param2) => {
// do something
})
function aFunctionThatUsesAddEvent(param1, param2) {
addEvent(param1, param2)
})
module.exports.aFunctionThatUsesAddEvent = aFunctionThatUsesAddEvent
文件B.js
const FileA = require(__dirname + './fileA'); // Not sure where are you importing the file form
function letsAddEvent(param1, param2) {
FileA.aFunctionThatUsesAddEvent(param1, param2) {
// your code
})
})
您正在從fileA.js
導出function aFunctionThatUsesAddEvent
fileA.js
。
所以,當你調用const FileA = require(__dirname + '/..fileA');
在fileB.js
, FileA
變成了function aFunctionThatUsesAddEvent
而FileA
沒有任何addEvent
。
這個問題有多種解決方案。
最簡單的一個:
文件A.js
function addEvent(param1, param2) => {
// do something
})
function aFunctionThatUsesAddEvent(param1, param2) {
addEvent(param1, param2)
})
module.exports = {
addEvent: addEvent,
aFunctionThatUsesAddEvent: aFunctionThatUsesAddEvent
}
文件B.js
const FileA = require(__dirname + '../fileA');
FileA.addEvent(); // it should work
FileA.aFunctionThatUsesAddEvent() // it should work
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.