ES6 Classes. Property Descriptor.

by Artem

JavaScript

'use strict';

function User(name, age) {

  class User {
    constructor() {
      this.name = name;
    }
  }

  let user = new User(name);

  Object.defineProperties(user, {
    gender: {
      value: 'male'
    },
    age: {
      get: function() {
        return age;
      },
      set: function(value) {
        alert('Молодость не вернешь!');
        return false;
      }
    }

  });

  return user;
}

const user = new User('Vasya', 23);
user.age = 16;
console.log(user.age);