我是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:未定义响应
答案 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();
}
};