访问未定义的原型方法或函数



我正在学习使用原型,但在导出和在其他文件中使用它时遇到了一些问题。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也可以工作。

最新更新