主干/解析中的类成员相互使用
Class members in Backbone/Parse using each other
var User = Parse.User.extend({
// instance members
}, {
// types
TYPE_TRAINER : 1,
TYPE_ATHLETE : 2,
types: {
TYPE_TRAINER : 'Trainer',
TYPE_ATHLETE : 'Athlete'
}
});
我希望TYPE_TRAINER
并TYPE_ATHLETE
维护在types
对象之前定义的1
和2
的值,以便我可以在模板中使用types
对象。
如果你不了解 Parse,Parse.User
是 Backbone.Model
的扩展。
谢谢!
你所问的在 JavaScript 对象文字中是不可能直接实现的。对象文字始终是左侧/键侧的文本值。
您可以得到的最接近的是使用 TYPE_TRAINER
键和TYPE_ATHLETE
键作为变量,通过方括号语法分配值以访问对象键/值对:
var a = 1;
var b = 2;
var obj = {};
obj[a] = "a";
obj[b] = "b";
这将导致obj
对象如下所示:
{
1: "a",
2: "b"
}
所以你可以做这样的事情,在你的代码中得到你想要的东西:
var userMethods = {
// types
TYPE_TRAINER : 1,
TYPE_ATHLETE : 2
};
userMethods[userMethods.TYPE_TRAINER] = 'Trainer';
userMethods[userMethods.TYPE_ATHLETE] = 'Athlete';
var User = Parse.User.extend({
// instance members
}, userMethods);
它的代码比您可能想要的要多,但由于对象文字语法,这是实现所需内容的唯一方法。
Parse.Object Javascript文档说:
您应该致电:
var MyClass = Parse.Object.extend("MyClass", {
// Instance properties
}, {
// Class properties
});
或者,对于主干兼容性:
var MyClass = Parse.Object.extend({
className: "MyClass",
// Other instance properties
}, {
// Class properties
});
如果要扩展Parse.User
"类"(它是一个对象,而不是一个类),则需要如上所述包含className
Parse.User
因为它本身就是Parse.Object
的扩展。
相关文章:
- 主干-不管怎样,检查事件以前是否绑定过
- 主干模板:index.jst.eco到index.jst.ejs
- 获取@ResponseBody的一部分作为主干和Spring MVC控制器之间的参数
- 主干集合重置和解析
- 主干窗体隐藏字段未呈现
- 我应该如何检查主干.主干.模型更改时查看
- 取消绑定主干视图事件
- 更新成员数据模型中的记录列表
- 主干-从模板中迭代的集合中获取特定的模型
- 主干模型更改事件只触发一次
- 如何覆盖主干中的extend方法
- Web应用程序,将成员状态更新为其他成员
- 如何在 JavaScript 中“获取”成员变量
- 使用私有成员创建JavaScript类
- 为什么在这种情况下,“This”确实充当javascript函数中的私有成员
- 如何测试主干视图是否正确侦听特定事件
- 具有服务器端呈现的HTML片段的主干模型
- 如何在主干js中解析视图中的消息
- 主干/解析中的类成员相互使用
- 如何分离主干/成员组件