我在下面确实遇到了这样的问题,它创建了一个新的构造函数,并且必须在对象中返回一个字符串。我的数据是这样的对象数组
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
在两个元素中,这不会返回测试预期的内容。它也将返回另一个值"再见",对于测试来说,这是一个失败。明白我的意思了吗?