如何在javascript中创建模型以确保所有属性都存在

时间:2017-04-15 19:15:54

标签: javascript model redux normalize

我想知道如何在javascript中创建模型?

示例对象用户:应该具有这些属性[name,username,password],并且不应存在其他属性。

现在我想发送任何值,它应该返回具有这3个属性的对象并忽略任何其他道具。

我尝试使用

var UserFactory = props => ({
  user    :props.user||'',
  username:props.username||'',
  ..etc
})

现在,当我传递用户对象时,确保所有属性都存在,并且不会发生未定义的错误。

我希望这是为了在获取/发布到服务器时规范化数据。

是否已经有了如何做到这一点的最佳做法?

p.s:如果重要的话,我在react-redux学习项目中使用它。

感谢

修改 上面代码的问题:

  1. 我不能进行类型检查,因为工厂返回的是普通对象而不是模型userFactory({}) instanceOf UserObject === false的实例,那么如何确定变量是否在内部持有userObject?
  2. 它的详细,但如果我使用Object.assign(),我可能会在我的对象中获得不需要的属性,所以我不确定这是否是最好的方法。

1 个答案:

答案 0 :(得分:1)

  

是否已经有了如何做到这一点的最佳做法?

是的,这就是你正在做的事情 - 使用对象工厂。在构建新模型时,这是JS世界中的常用方法。但是,不使用ES5方法而是使用ES6方法进行参数处理:

footer{
  position:fixed;
  bottom:0;
  text-align: center;
  width: 100%;
}

查看更多here