понедельник, марта 03, 2008

Грабли при определении значения свойства-объекта по умолчанию. AS 2

В классе определил свойство следующим образом:
private var __states:Object = {normal:false,over:false,down:false};
После чего, если в каком-либо объекте, инстанцированном от этого класса, менялись свойства this.__states.normal, this.__states.over, this.__states.down, изменения отражались на всех остальных объектах, инстанцированных от этого класса.

Грабли еще раз доказывают, что указывать значения по умолчанию прямо в определении свойства, а не в конструкторе - плохая практика.

Указывать значения по умолчанию прямо в определении свойства, допустимо лишь для статических переменных, при использовании их в качестве констант, а так же в особых случаях, когда это действительно необходимо.

Комментариев нет: