我想给函数构造函数(类)的原型添加一个常量,但它会以未定义的原因返回。为什么不编辑原型作品?
function myClass(){
}
$(document).ready(function(){
myClass.prototype.age = 22;
window.alert(myClass.age);
});
我想给函数构造函数(类)的原型添加一个常量,但它会以未定义的原因返回。为什么不编辑原型作品?
function myClass(){
}
$(document).ready(function(){
myClass.prototype.age = 22;
window.alert(myClass.age);
});
因为它的原型继承。
下面将工作:
myClass.prototype.age = 22;
var myobj = new myClass();
window.alert(myobj.age);
在您的例子要添加属性的类原型。当你实例化该类的一个对象时,你只会看到这些。
达到你想要什么,只是依靠一个expando属性:
myClass.age = 22;
window.alert(myClass.age);
如果它有帮助的,想到的第一个样品在C#类声明的公共财产。您只能在实例化时访问它。
第二个例子就像在C#中的一个类上声明一个公开的static
属性。你不需要实例化它来访问它。
编辑注释
要在类的方法中访问的年龄,使用此this
myClass.prototype.GetAge = function(){
alert(this.age);
}
使用something.bar
只有当something
是一个类的实例工作。
我创建“类的静态”变量模式如下:
var MyClass = function() {
if (typeof this.constructor.static === 'undefined') {
// create (and initialise) default static variables
this.constructor.static = { age: 22 };
}
// create a local alias
var static = this.constructor.static;
// now you can use "static.variableName" as a class static
alert(static.age);
}
除了“为什么这一工作犯规”的事实,它缺少”,也非描述。 – cwallenpoole 2011-06-15 14:22:39
对不起,我应该检查更好的问题,感谢编辑... – Exitos 2011-06-15 14:50:48