构造函数对象始终返回函数而不是字符串



我在下面确实遇到了这样的问题,它创建了一个新的构造函数,并且必须在对象中返回一个字符串。我的数据是这样的对象数组

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

好吧,尝试用数字2替换this.number(仅用于评估这种情况(,然后它应该返回"hello world"和"再见"。如果是这种情况,您可能会遇到一些引用错误。

此外,测试可能会失败,因为初始数组2为属性的值number在两个元素中,这不会返回测试预期的内容。它也将返回另一个值"再见",对于测试来说,这是一个失败。明白我的意思了吗?

最新更新