我想給函數構造函數(類)的原型添加一個常量,但它會以未定義的原因返回。爲什麼不編輯原型作品?
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