在AS3中使用对象访问器

问题描述 投票:0回答:2

我在这里查看javascript代码:https://www.w3schools.com/js/js_object_accessors.asp

它们在javascript中使用对象访问器显示的位置。

作为JS的超集,我尝试在AS3中使用它,但出现编译器错误

var p = {

  get a() {
    return 1;
  }

};

trace(p.a);

我希望在AS3中必须使用某种方法?有什么想法吗?

我已经知道了更长的语法,尽管当然可以使用:

var p = {

  a:function() {
    return 1;
  }



};

trace(p.a());
actionscript-3
2个回答
0
投票

AS3语法与JavaScript有很大不同。变量具有类型(即使只是Object)。 AS3 reference显示了一个创建动态对象的示例,该对象实际上更多是一个关联数组:

var obj:Object = {a:"foo", b:"bar"};

虽然AS3确实允许JavaScript的某些特质,但我强烈建议您将其视为适当的强类型编程语言(比起JavaScript,更像C#或Java),因为这会导致代码更简洁,性能更好(某些情况)。

如果在设计时知道对象的属性,则应使用get / set属性和方法创建类,因为它们比动态对象具有更好的性能。

向对象添加动态功能依赖于使用Function类型。


0
投票

是的,在AS3中有getter和setter,但它们仅在类中可用。

实施:

Function

用法:

package
{
    public class ExampleGS
    {
        public function get a():int
        {
            return 1;
        }
    }
}

有关var p:* = new ExampleGS; trace(p.a); // 1 的更多信息。

© www.soinside.com 2019 - 2024. All rights reserved.