javascript - 访问未定义的原型方法或函数
问题描述
我正在学习使用原型,但在导出和在其他文件中使用它时遇到了一些问题。要求部分有效,但我无法访问我的 data.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 = Data
为module.exports.Data = new 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
也可以工作。
推荐阅读
- python - python pyodbc SQLite sql注入
- php - 如何在一个数组中使用array_intersect
- c# - WPF MVVM 键绑定
- python-3.x - 如何修补数组中的特定子文档
- java - 在两个会话中在主从 ADF 中详细添加记录
- android - 无法真正通过命令行成功安装 apk
- react-native - BottomTabNavigation:元素类型无效:应为字符串或类/函数,但得到:对象
- vue.js - 如何创建具有悬停效果的可点击 q-card?
- php - Laravel 编辑函数重定向
- python - 想要创建一个用户输入,一旦选择就会启动一个预定义的列表