我正在使用 Node.js 模块,但我一直坚持如何以使方法可访问的方式导出原型。
例如,采用以下代码:
var myobj = function(param) {
this.test = 'a test';
return this.param = param;
};
myobj.prototype = {
indexpage: function() {
console.log(this.test);
return console.log(this.param);
}
};
var mo = new myobj('hello world!');
mo.indexpage();
我的结果符合预期:
a test
hello world!
如果我采用相同的代码并将其放在另一个带有 module.exports 的文件中:
一些文件.js
var myobj = function(param) {
this.test = 'a test';
return this.param = param;
};
myobj.prototype = {
indexpage: function() {
console.log(this.test);
return console.log(this.param);
}
};
// the only line that is different
module.exports = myobj;
app.js 代码
var MyObj = require('myobj.js');
var mo = new MyObj('hello world!');
mo.indexpage();
现在我明白了TypeError: Object #<Object> has no method 'indexpage'
我哪里错了?我已经在这个问题上工作了几个小时;我对 javascript 的基本掌握并没有比搜索论坛更能帮助我解决这个问题。