javascript:无法访问成员函数

javascript:无法访问成员函数,javascript,Javascript,新手问题 我无法访问成员函数。我做错了什么 index.js -> var abc = require('./def'); var foo = new abc(); foo.zxc(); def.js -> var bar = function(){ // do something var zxc = function(){ // do something } } module.exports = def; 当我在brwoser控制台中运行时,它

新手问题

我无法访问成员函数。我做错了什么

index.js ->
var abc = require('./def');
var foo = new abc();
foo.zxc(); 

def.js ->
var bar = function(){
// do something
    var zxc = function(){
        // do something
    }
}
module.exports = def;
当我在brwoser控制台中运行时,它显示:


TypeError:foo.zxc不是一个函数,因为
zxc
只是一个局部变量,不能从
函数外部访问。你可以把它改成

var bar = function() {
   // do something
    this.zxc = function(){
        // do something
    }
}

现在,
zxc
是构造对象的自有属性,因此它可以工作。

尝试以下操作:

// index.js ->
var abc = require('./def');
var foo = new abc.bar();
foo.zxc(); 

// def.js ->
var bar = function(){
// do something
    this.zxc = function(){
        // do something
    }
}
module.exports.bar = bar;

主要区别在于您现在正在导出
bar(){…}
构造函数,然后可以在模块中所需的
abc
之外使用该构造函数?

@kalpa您确定def.js正在导出函数
bar
?因为在你发布的代码中它看起来不像…