AS3 - 参考参数,是不是很糟糕?

时间:2011-07-17 01:01:02

标签: actionscript-3 reference arguments

我读了一个关于stackoverflow的问题(现在找不到)关于如何只能在该方法中访问方法中的变量,但代码仍然适用于酒店房间的类比。在AS3中,我相信所有非原始的东西都会作为参考传递。那么,以下代码与该问题相同,并不能保证有效?

public class Testy {
    private var foo:Array;

    public function Testy(input:Array) {
        // Allow the whole class to access it
        foo = input;
    }

    public function traceFoo(){
        trace(foo);
    }

}

现在,foo将引用类'构造函数中的输入参数。这是安全的代码/良好做法吗?谢谢!

3 个答案:

答案 0 :(得分:1)

是的,这是安全/良好的代码练习,只要您不想操作原始数组。如果要操作原始数组,请允许公共访问数组,方法是将其设置为public var或使用公共getter / setter。

答案 1 :(得分:1)

您所描述的是一个属性,并且内嵌了面向对象编程的封装。

这会暴露一个getter和setter:


package
{
    import flash.display.Sprite;

    public class Testy extends Sprite
    {
        private var _foo:Array;

        public function get foo():Array
        {
            return _foo;
        }

        public function set foo(value:Array):void
        {
            _foo = value;
        }

        public function Testy()
        {
            super();
        }

    }
}

答案 2 :(得分:0)

最好在getter中返回_foo.concat(),不要破坏封装。