簡體   English   中英

Javascript:在文件之間共享功能

[英]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.jsFileA變成了function aFunctionThatUsesAddEventFileA沒有任何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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM