我正在使用JavascriptMVC处理我的第一个项目。
我有一堂课。
$.Class('Foo',{
// Static properties and methods
message: 'Hello World',
getMessage: function() {
return Foo.message;
}
},{});
这很好用。但是,如果我不知道班级名称怎么办? 我想要这样的东西:
$.Class('Foo',{
// Static properties and methods
message: 'Hello World',
getMessage: function() {
return this.message;
}
},{});
但我不能在静态属性中使用 this 。 那么,我如何从静态方法中获取当前的类名。
从原型方法很容易:
this.constructor.shortName/fullName.
但是如何在静态方法中做到这一点?
答案 0 :(得分:0)
事实是,我错了。可以在静态方法中使用 this 。 这里有一个小代码片段,可以帮助理解JavascriptMVC的静态和原型方法和属性如何工作,以及 this 的范围。
$.Class('Foo',
{
aStaticValue: 'a static value',
aStaticFunction: function() {
return this.aStaticValue;
}
},
{
aPrototypeValue: 'a prototype value',
aPrototypeFunction: function() {
alert(this.aPrototypeValue); // alerts 'a prototype value'
alert(this.aStaticValue); // alerts 'undefined'
alert(this.constructor.aStaticValue); // alerts 'a static value'
}
});
alert(Foo.aStaticFunction()); // alerts 'a static value'
var f = new Foo();
alert(f.aPrototypeValue); // alerts 'a prototype value'
f.aPrototypeFunction();