我正在学习使用原型,但在导出和在其他文件中使用它时遇到了一些问题。require部分有效,但我无法访问数据中的属性或方法.js。
如果我想使用myFunction
我会得到myFunction is not a function
和属性undefined
我也不明白为什么function(){};
而不是let Data = {};
有效......
// data.js
let Data = function(){};
Data.prototype.integers = [0,1,3,2,8,4,11,22,74,98,111,5];
Data.prototype.myFunction= function (text){
return text
}
module.exports.Data = Data;
// main.js
let Numbers = require ("./data.js");
console.log(Numbers.myFunction("some text"), Numbers.integers ); // myFunction is not a function
这是因为您要向Data.prototype
添加成员。
用module.exports.Data = new Data()
更改module.exports.Data = Data
。
一些建议
除非你想用面向对象编程做一些事情,否则我会重构你的代码,如下所示:
// data.js
module.exports.Data = {
integers: [0,1,3,2,8,4,11,22,74,98,111,5],
myFunction: function (text){
return text
}
}
所以你的代码main.js
也可以工作。