ActionScript3.0:平凡的setter调用getter三次.为什么



获取以下代码:

private var m_iWidth:int;
[Bindable]
public function get width():int
{
    Alert.show("getter");
    return m_iWidth;
}
private function set width(pValue:int):void
{
    Alert.show("setter");
    m_iWidth = pValue;
}
private function someFunction(pWidth:int):void
{
    width = pWidth;
}

width = pWidth;的输出为:

getter
setter
getter
getter

请解释。谢谢

1(设置属性时,代码首先调用getter来查看值是否不同。如果相同,则不调用setter(解释第一个get/set对(。

2( 如果属性被绑定,则在设置之后,任何访问都将调用getter(解释最后两次getter调用(

最新更新