Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用构造函数的实例变量访问java脚本中构造函数的静态属性?_Javascript - Fatal编程技术网

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

Javascript 如何使用构造函数的实例变量访问java脚本中构造函数的静态属性?,javascript,Javascript,我在java脚本中创建了一个类(构造函数),如下所示,它的属性类型为static function MyClass(property1 ) { this.Property1 = property1 || ""; } MyClass.StaticProperty = { Running: "Running", NotRunning: "NotRunning" } 现在,我可以使用构造函数名称访问上述静态属性,如下所示: MyClass.StaticProperty.Ru

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

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;
但我还希望使用构造函数的实例访问该属性,如下所示:

MyClass.StaticProperty.Running
var myClassInstance = new MyClass("value");
var status = myClassInstance.StaticProperty.Running;
我知道如果它是原型变量或构造函数中定义的变量,我可以访问它。但我不想这样做,因为我希望它表现为一个静态变量

用例:

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

var allStaticPropertyValues = [];
for(index = 0; index < arrayOfConstructors.length; index++)
{
    for(var property in arrayOfConstructors[index].StaticProperty)
    {
        allStaticPropertyValues.push(arrayOfConstructors[index].StaticProperty[property]);
    }
}
var allstaticPropertyValue=[];
对于(索引=0;索引
我的尝试:

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

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


  • 访问
    构造函数
    属性将直接引用构造函数(对象,而不是字符串),因此您可以访问其
    静态属性
    属性:

    函数MyClass(property1){
    this.Property1=Property1 | |“”;
    }
    MyClass.StaticProperty={
    跑步:“跑步”,
    NotRunning:“NotRunning”
    }
    var myClassInstance=新的MyClass(“值”);
    var status=myClassInstance.constructor.StaticProperty.Running;
    
    控制台日志(状态)
    您可以使用
    MyClass
    实例的
    constructor
    属性来获取
    MyClass
    ,然后您可以访问
    MyClass
    的静态变量

    函数MyClass(property1)
    {
    this.Property1=Property1 | |“”;
    }
    MyClass.StaticProperty={
    跑步:“跑步”,
    NotRunning:“NotRunning”
    }
    var myClassInstance=新的MyClass(“值”);
    var status=myClassInstance.constructor.StaticProperty.Running;
    console.log(状态)