代码之家  ›  专栏  ›  技术社区  ›  user1107173

Javascript:在文件之间共享函数

  •  0
  • user1107173  · 技术社区  · 8 年前

    文件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)

    如何声明一个可以在本地使用并且也可以由另一个文件使用的函数?

    2 回复  |  直到 8 年前
        1
  •  2
  •   Ergin    5 年前

    您正在导出 function aFunctionThatUsesAddEvent 从…起 fileA.js .

    所以,当你打电话的时候 const FileA = require(__dirname + '/..fileA'); 在里面 fileB.js , FileA 成为 函数A使用SADDEvent的函数 文件A 没有任何 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
    
        2
  •  2
  •   elvis_ferns    8 年前

    文件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
      })
    })
    
    推荐文章