Javascript 主干/解析中的类成员相互使用
我想让Javascript 主干/解析中的类成员相互使用,javascript,class,backbone.js,Javascript,Class,Backbone.js,我想让TYPE\u TRAINER和TYPE\u atternate维护1和2的值,如types对象之前定义的,以便我可以在模板中使用types对象 如果您不了解Parse,Parse.User是Backbone.Model的扩展 谢谢 报告说: 你应致电: var User = Parse.User.extend({ // instance members }, { // types TYPE_TRAINER : 1, TYPE_ATHLETE : 2,
TYPE\u TRAINER
和TYPE\u atternate
维护1
和2
的值,如types
对象之前定义的,以便我可以在模板中使用types
对象
如果您不了解Parse,Parse.User
是Backbone.Model
的扩展
谢谢 报告说:
你应致电:
var User = Parse.User.extend({
// instance members
}, {
// types
TYPE_TRAINER : 1,
TYPE_ATHLETE : 2,
types: {
TYPE_TRAINER : 'Trainer',
TYPE_ATHLETE : 'Athlete'
}
});
或者,对于主干网兼容性:
var MyClass = Parse.Object.extend("MyClass", {
// Instance properties
}, {
// Class properties
});
如果您想要扩展
Parse.User
“类”(它是一个对象,而不是一个类),您需要如上所述包含className
,因为Parse.User
本身就是Parse.object
的一个扩展,在JavaScript对象文本中无法直接实现您的请求。对象文字始终是左侧/键侧的文字值
最接近的方法是使用TYPE_TRAINER
和TYPE_TRAINER
键作为变量,通过方括号语法分配值,以访问对象键/值对:
var MyClass = Parse.Object.extend({
className: "MyClass",
// Other instance properties
}, {
// Class properties
});
这将导致obj
对象如下所示:
var a = 1;
var b = 2;
var obj = {};
obj[a] = "a";
obj[b] = "b";
因此,您可以这样做,以在代码中获得所需内容:
{
1: "a",
2: "b"
}
它的代码比您可能想要的要多,但由于对象文字语法,它是实现您想要的内容的唯一方法。
类型
不是我从这里看到的数组,谢谢。我已经相应地编辑了这个问题。我给一位解析开发人员发了电子邮件,告知他们扩展Parse.User对象,以便根据我的喜好覆盖默认功能(例如,在保存之前对对象进行主干样式验证)。我还认为您没有抓住问题的关键。PHP是我见过的为数不多的失败之一。下一个是异步模块加载-我再也不能依赖PHP的_autoload:(感谢您的帮助!
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);