javascript - 如何从 REST api 扩充数据

标签 javascript ecmascript-6 axios

在我的 React 应用程序中,我正在使用 REST API。我有多个返回某个对象的端点,例如一个人:

  • /api/persons:返回人员列表
  • /api/persons/:id: 返回一个特定的人
  • /api/cars/:id:返回汽车的owner属性中的一个人

在每种情况下,我都有一个代表一个人的对象,现在我发现需要为这些对象添加功能,例如我想添加一个 displayName() 函数来连接名字和姓氏以及 ID。
以良好的 OOP 方式,我不想在需要显示名称的地方重复该代码。相反,我想将该函数添加到返回的对象中。

是否有公认的默认方式来做到这一点?比如让它知道要反序列化到哪些类?或者我应该在获取数据后简单地手动转换数据?

最佳答案

此原型(prototype)方法可用于任何具有属性“firstName”和“lastName”的对象:

Object.prototype.displayName = function() {
    if(this.firstName && this.lastName)
    {
      return this.firstName + " " + this.lastName
    }
    return ""
}

用法:

var person = {
    firstName: "John",
    lastName: "Doe"
}

person.displayName() // "John Doe"

显然,如果您定义了 Person作为一个类,您还可以使用 Person.prototype.displayName 扩展它, 而不是创建 Object 的原型(prototype).

关于javascript - 如何从 REST api 扩充数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49980613/

相关文章:

javascript - 公理错误 : getaddrinfo ENOTFOUND

javascript - 不熟悉的带括号和逗号的变量赋值

javascript - 浅拷贝对象遗漏了 ES6/ES7 中的一个或多个属性?

javascript - ES6减少返回1个数组项而不是2个

javascript - 如何完善这个 JS 数组搜索功能?

javascript - 在 mounted() 中阻止应用程序,直到使用 Amazon cognito 和 Vue.js 对用户进行身份验证

javascript - 将文本插入文本框并模拟单击 Bot Framework Web Chat 中的按钮

javascript - 为 AngularJS 模块创建全局服务

javascript - 如何使用 Bull 在 Node.js 中将我的函数作为后台进程执行?

javascript - 如何测试来自 ES6 类中定义的函数的异步 axios 调用?