Ida*_*dan 11 javascript node.js
我在模块文件中有以下内容:
module.exports = {
myfunc: myfunc
};
var myfunc = function(callback){
callback(err,reply);
};
Run Code Online (Sandbox Code Playgroud)
在另一个文件中,我得到了对该模块的引用
var mymodule = require('./modules/mymodule');
mymodule.myfunc(function(err, reply){ ... });
Run Code Online (Sandbox Code Playgroud)
当我调用mymodule.myfunc()时,我收到一条错误,说"属性'myfunc'不是函数".这仅在导出的函数中发生.同一个模块导出一些'字符串'字段,这些字段工作正常.
Aio*_*ros 20
分配时module.exports,该myfunc功能仍未定义.在声明之后尝试分配它:
var myfunc = function(callback){
callback(err,reply);
};
module.exports = {
myfunc: myfunc
};
Run Code Online (Sandbox Code Playgroud)
要保留文件顶部的module.exports的原始顺序,请将var myfunc 初始化更改为function myfunc 声明,以便后者被提升.
module.exports = {
myfunc: myfunc
};
function myfunc(callback){
callback(err,reply);
};
Run Code Online (Sandbox Code Playgroud)
声明被提升,但初始化不是,这就是为什么你的原始示例不起作用的原因.w3schools有JavaScript提升的实用描述.
| 归档时间: |
|
| 查看次数: |
23703 次 |
| 最近记录: |