gpt4 book ai didi

javascript - 为什么这种对原型(prototype)的编辑不起作用?

转载 作者:搜寻专家 更新时间:2023-11-01 05:07:30 24 4
gpt4 key购买 nike

我想向函数构造函数(类)的原型(prototype)添加一个常量,但它返回时未定义,为什么?

function myClass(){

}

$(document).ready(function(){

myClass.prototype.age = 22;

window.alert(myClass.age);

});

最佳答案

因为它的原型(prototype)继承。

以下是可行的:

myClass.prototype.age = 22;

var myobj = new myClass();
window.alert(myobj.age);

在您的示例中,您正在向类原型(prototype)添加属性。只有在实例化该类的对象时才会看到这些。

要实现您想要的,只需依靠 expando 属性:

myClass.age = 22;

window.alert(myClass.age);

如果有帮助,请将第一个示例视为在 C# 中的类上声明公共(public)属性。您只能在实例化时访问它。

第二个示例类似于在 C# 中的类上声明公共(public) static 属性。您无需实例化它即可访问它。

编辑评论

要从类中的方法中访问年龄,请使用此 this

myClass.prototype.GetAge = function(){
alert(this.age);
}

关于javascript - 为什么这种对原型(prototype)的编辑不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6359190/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com