2015-10-17 106 views
3

NEWBIE问题。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控制台中运行它表明:

类型错误:foo.zxc不是一个函数

回答

2

因为zxc是不从的bar功能的外部访问的局部变量。你可以把它改成

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

现在,zxc是自己的构造对象的属性,因此它会奏效。

+0

现在它显示TypeError:abc不是构造函数 – kalpa

+0

@kalpa你确定def.js正在导出函数bar吗?因为它看起来并不像你所发布的代码... – Touffy

0

尝试类似如下:

// 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的使用吗?

+0

现在它显示TypeError:abc不是构造函数 – kalpa

+1

为什么不导出栏? –

+0

同样的错误显示 – kalpa