如何解决为什么不对原型进行编辑?
| 我想在函数构造函数(类)的原型中添加一个常量,但是为什么未定义呢?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
是类的实例时,才使用something.bar
。
我创建“类静态”变量的模式如下所示:
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);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。