微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么不对原型进行编辑?

如何解决为什么不对原型进行编辑?

| 我想在函数构造函数(类)的原型中添加一个常量,但是为什么未定义呢?
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 举报,一经查实,本站将立刻删除。