2017-01-09 96 views
0

我是Node和JS的新手,试图实现一个模块。在我的模块内部我想要一个对象,我可以在我的模块的其他方法中初始化它的实例(特别是在我的情况下,它是一个响应对象)。 所以我的代码是:在模块中创建一个对象及其实例JS,NODE

exports.myModule = { 

//response object 
Response: function() 
{ 
    // some initializing and functions 
    function testFunction(){ 
     console.log("test function inside object was called"); 
    } 
} 



//now i am trying to create an instance 
tester: function() { 
    var res = new Response(); 
    res.testFunction(); 
} 
} 

但是我得到的是我不明白 语法错误(这个代码是没有意义的它的目的,因为我还在测试对象的基本建立在我的模块,

EDITED

现在创建一个新的响应时,我得到的错误: 的ReferenceError:未定义响应

+0

让我们来看看dat error哟! –

+1

主要是因为我看到的语法问题遍布片断您提供^^ –

+0

请参阅编辑@TheDembinski, – Eysiliator

回答

0

尝试像

var Foo = { 

//response object 
Response: function() 
{ 
    // some initializing and functions 
    function testFunction(){ 
     console.log("test function inside object was called"); 
    } 
} 



//now i am trying to create an instance 
tester: function() { 
    var res = new Foo.Response(); 
    res.testFunction(); 
} 
} 
module.exports = Foo; 

首先 - 这有很大的问题。像Response方法只是奇怪。但我不想编辑你的原始代码片段。

而且就像我在评论中提到的那样,即使您修复了明显的错误,我建议您只需在此处使用Google搜索节点教程即可。

编辑:如果有人发现他们在这里,请参考OP在做一些一般性背景知识工作后提供的答案。

工作示例可能类似于:

module.exports = { 

    //response object 
    Response: function() 
    { 
     // some initializing and functions 
     this.testFunction = function(){ 
      console.log("test function inside object was called"); 
     } 
    }, 


    //now i am trying to create an instance 
    tester: function() { 
     var res = new this.Response(); 
     res.testFunction(); 
    } 
}; 
+0

谢谢,现在我得到的消息:的ReferenceError:美孚没有定义 我google搜索的是,仅仅明确找不到这种情况下,也许是因为我不是最好的方式做 – Eysiliator

+0

确保你看看所有的东西!如果您已完成此线程,请继续并删除它或接受答案。 –

+0

有一个错误;函数testFunction(){'应该是'this。testFunction = function(){' –

1

我最终通过采取这样的模块之外的对象声明解决了这个:

function Response(){ 
// some initializing and functions 
    function testFunction(){ 
     console.log("test function inside object was called"); 
    } 
} 

var Foo = { 

//now i am trying to create an instance 
tester: function() { 
    var res = new Foo.Response(); 
    res.testFunction(); 
    } 
} 
0

的问题是背景。当您执行新的响应时,它会在全局空间中查找它,而该函数未定义。所以,为了访问该函数,使用this.Response像我一样,或者Foo.Response像The Dembinski一样。

module.exports = { 

    //response object 
    Response: function() 
    { 
     // some initializing and functions 
     this.testFunction = function(){ 
      console.log("test function inside object was called"); 
     } 
    }, 


    //now i am trying to create an instance 
    tester: function() { 
     var res = new this.Response(); 
     res.testFunction(); 
    } 
};