javascript - 构造函数对象总是返回一个函数而不是一个字符串
问题描述
我在下面确实有这种问题,即创建一个新的构造函数并且必须在对象中返回一个字符串。我的数据是这样的对象数组
val _List = [{name: 'name1', number: 2, 'message': 'Hello World'},{name: 'name1', number: 2, 'message': 'Good bye'}]
并且代码将由测试执行
test2 = new ProgramDevice('2');
it('should send string exactly', function() {
expect(test2.postStringReturn).toEqual('Hello world!');
}
我创建的解决方案如下所示,但不是字符串返回,而是返回一个函数
this.postStringReturn= _List.find(data => {
if(data.number == this.number ) {
return data.message
}
});
有人可以解释我在哪里做错了吗?抱歉不是很擅长OOP,有人告诉我我的错误在哪里
更新 //
如果我创造这样的东西
var ProgramDevice = function (num) { // i.e. '192.168.0.1'
this.number= num;
}
ProgramDevice.prototype = {
postStringReturn = _List.find(data => { data.number == this.number }).message
}
我怎样才能this.number
使用原型
解决方案
好吧,尝试this.number
用 digit 替换(仅评估这种情况),2
然后它应该返回 'hello world' 和 'Good Bye'。如果是这种情况,您可能会遇到一些参考错误。
此外,测试可能会失败,因为您的初始数组在两个元素中都2
具有属性值number
,这不会返回测试预期的结果。它也将返回另一个值“再见”,并且对于测试这是失败的。明白我的意思了吗?
推荐阅读
- algorithm - 贪心算法 - 最小化完成任务的操作数
- docker-compose - docker-compose build 时如何处理错误
- r - 如何在 R coefplot::multiplot 中按系数而不是模型着色
- mysql - FIND_IN_SET 还是使用 JOIN?
- c# - particleSystem.startSize 与particleSystem.main.startSize
- swift - 为什么我不能得到 NSArray 的值?它总是返回零值。Swift 4.3
- kubernetes - Kubernetes 在错误的时间运行 cronjob
- r - 在 R 中使用 ggpubr 将帧和样本大小 (n) 添加到散点图
- javascript - 排序和更新状态属性数组?- 反应JS
- http - 分隔符防御中的SP和HT是什么意思