gpt4 book ai didi

javascript - 如何使用构造函数的实例变量访问java脚本中构造函数的静态属性?

转载 作者:行者123 更新时间:2023-11-30 11:05:32 28 4
gpt4 key购买 nike

我在 java 脚本中创建了一个类(构造函数),如下所示,它具有静态类型的属性。

function MyClass(property1 )
{
this.Property1 = property1 || "";
}

MyClass.StaticProperty = {
Running: "Running",
NotRunning: "NotRunning"
}

现在我可以使用构造函数名称访问上面的静态属性,如下所示:

MyClass.StaticProperty.Running

但我还想使用构造函数的实例访问该属性,如下所示:

var myClassInstance = new MyClass("value");
var status = myClassInstance.StaticProperty.Running;

我知道如果它是原型(prototype)变量或在构造函数中定义的变量,我可以访问。但我不想这样做,因为我希望它表现为静态变量

用例:

我有多个具有相同属性名称的构造函数。我在数组中获取这些构造函数实例。我想遍历数组中的每个构造函数并读取静态变量。例如

var allStaticPropertyValues = [];
for(index = 0; index < arrayOfConstructors.length; index++)
{
for(var property in arrayOfConstructors[index].StaticProperty)
{
allStaticPropertyValues.push(arrayOfConstructors[index].StaticProperty[property]);
}
}

我尝试了什么:

  1. 我尝试使用 typeof 关键字获取类类型,但它仅作为对象提供,而不是我可以用来访问属性的构造函数引用。

  2. instanceOfObject.constructor.getname() 它将构造函数的名称作为字符串而不是作为引用。

    <

最佳答案

您可以使用 MyClass 实例的 constructor 属性来获取 MyClass 然后您可以访问 MyClass 的静态变量

function MyClass(property1 )
{
this.Property1 = property1 || "";
}

MyClass.StaticProperty = {
Running: "Running",
NotRunning: "NotRunning"
}

var myClassInstance = new MyClass("value");
var status = myClassInstance.constructor.StaticProperty.Running;

console.log(status)

关于javascript - 如何使用构造函数的实例变量访问java脚本中构造函数的静态属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55791407/

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