Среда браузером ограниченна , многое делается сложнее чем хотелось бы. Например до появления поддержки proxy ловить изменения объекта не так уж и легко было.
да самый обычный get/set паттерн применить можно было
было куда извращаться, в общем
еще и observe() был, не долго