我得到了这个私有变量,比方说,_var:int,它有一个setter和getter。到目前为止一切都很好。
var的初始值为500。
当我做var - = 5;它不是从var中减去5,而是减去505,我在getter中放置了一个断点,确实是在那里。
那么,我对限制器和吸气剂的理解是否差,或者这种行为不符合逻辑?
感谢。
答案 0 :(得分:2)
我假设您只是使用 var 作为问题的快速示例,因为 var 是受限制的关键字。
下面是一个如何使用setter& amp; ActionScript中的getter。
var bar:Bar = new Bar();
trace(bar.foo); //500
bar.foo -= 5;
trace(bar.foo); //495
package
{
//Class
public class Bar
{
//Variables
private var _foo:int;
//Constructor
public function Bar()
{
_foo = 500;
}
//Set Foo
public function set foo(value:int):void
{
_foo = value;
}
//Get Foo
public function get foo():int
{
return _foo;
}
}
}
您还可以通过将功能签名更改为来避免使用 设置 和 获取 关键字 setFoo(value:int):void 和 getFoo():int 。一些开发人员更喜欢这种方法,因为更明显的是,显式调用函数会建议额外的编程,而传统的ActionScript setter和getter则不然。