I try to define getter and setter in constructor via Object.assign: 
function Class() {
  Object.assign(this, {
    get prop() { console.log('call get') },
    set prop(v) { console.log('call set') },
  });
}
var c = new Class(); // (1) => 'call get'
console.log(c.prop); // (2) => undefined
c.prop = 'change';
console.log(c.prop); // (3) => 'change' 
Questions:
(1) Why getter is called?
(2) Why getter isn't called?
(3) Why setter is ignored?
 
    