首页 > 解决方案 > 构造函数对象总是返回一个函数而不是一个字符串

问题描述

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

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使用原型

标签: javascriptnode.js

解决方案


好吧,尝试this.number用 digit 替换(仅评估这种情况),2然后它应该返回 'hello world' 和 'Good Bye'。如果是这种情况,您可能会遇到一些参考错误。

此外,测试可能会失败,因为您的初始数组在两个元素中都2具有属性值number,这不会返回测试预期的结果。它也将返回另一个值“再见”,并且对于测试这是失败的。明白我的意思了吗?


推荐阅读