0
为了向作为json
对象接收的对象添加行为,我需要一个最佳实践建议。继承对象的最佳做法
我有一个REST
服务,允许我定义一种状态机。
该API定义了一个/sessions
资源。当通过POST /sessions/:id
创建一个会议上,我在我的控制器得到json
对象:
var session = {
"id": "",
"steps": [ ... ]
}
为了这个目的我想它继承了一些行为:
var baseSession = {
"nextStep": function() {... },
"getCurrentStep": function() { ...}
}
所以我希望做的是:
session.__proto__ = baseSession;
但是使用__proto__
似乎不是要做的事情。 另一种可能性将是每个属性复制一个新的对象:
function copyOwnProperyTo(origin, obj) {
Object.keys(origin).forEach(function(prop) {
obj[prop] = origin[prop];
});
}
var newSession = Object.create(baseSession);
copyOwnProperyTo(session, newSession);
该解决方案的工作,但对我来说,看起来有点起伏。还有其他建议吗?