OK, got it. I forgot that JavaScript assignment is not a data, but a reference copy (I'm a complete novice in JavaScript, only 3 days). So I just needed to make assignment on checkbox checked:
@
property var circle: ({ x: 256, y: 256, r: 64 })
property var ellipse: ({ x: 256, y: 256, width: 64, height: 128 })
property var figure: ellipse
...
CheckBox
{
id: chkCircle
text: "Circle"
checked: false
onCheckedChanged: figure = checked? circle : ellipse;
}
...
figure.x = parseFloat(text);
@
This concrete problem is solved, but I still need dynamic aliases and full bindings between QML objects and JavaScript objects.