在模块JS,NODE中创建一个对象及其实例

时间:2017-01-09 18:04:49

标签: javascript node.js

我是Node和JS的新手,试图实现一个模块。在我的模块里面我希望有一个对象,我可以在我的模块的其他方法中初始化它的实例(特别是在我的情况下它是一个响应对象)。 所以我的代码是:

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:未定义响应

3 个答案:

答案 0 :(得分: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();
    }
}

答案 1 :(得分:0)

尝试类似

的内容
=SUBSTITUTE(A1,".","." & $C$1 & ".",LEN(A1)-LEN(SUBSTITUTE(A1,".","")))

首先 - 这是一个巨大的问题。就像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; 方法一样奇怪。但我不想编辑你原来的片段。

就像我在评论中提到的那样,有更好的方法可以做到这一点,即使你修复了我建议只是在此处搜索Node教程的明显错误。

编辑:如果有人发现自己,请在完成一般背景知识工作后参考下面提供的答案。

一个工作示例可能类似于:

Response

答案 2 :(得分:0)

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

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();
    }
};