1120: Access of undefined property

2019-08-05 10:53发布

问题:

Why I'm getting a 1120: Access of undefined property arrMonth. error at the line arrMonth.push and how to correct it?

<fx:Script>
    <![CDATA[
        [Bindable]
        public var arrMonth:Array = new Array();

        arrMonth.push({label: "January"});
    ]]>
</fx:Script>

回答1:

The reason for that error is that your logic (the push statement) is not inside a method, hence it is considered to be at class level (i.e. static) instead of at the instance level.

Which means there are two ways to fix it:

1/ Make the variable static too (I suspect this is not what you want, but it will fix the error).

<fx:Script>
<![CDATA[
    public static var arrMonth:Array = new Array();

    arrMonth.push({label: "January"});
]]>
</fx:Script>

2/ Put the logic in a method, for instance:

<fx:Script>
<![CDATA[
    [Bindable]
    public var arrMonth:Array = new Array();

    override protected function initializationComplete():void {
        super.initializationComplete();
        arrMonth.push({label: "January"});
    }
]]>
</fx:Script>