对象有两种属性 数据属性 和 存取器属性
    存取器属性就是一组获取值和设置值的函数 getter负责获取值 不带任何参数,setter负责设置值,其函数体中的一切return都是无效的。
    声明对象或创建对象 或对象属性时,一般声明get 和 set调用getter setter函数。
    添加getter setter的方法
    1 字面值创建对象时声明 get 和 set
    2 Object.create
    3 Object.defineProperty
    4 Object.defineProperties
    5 Object.prototype.defineGetter 以及 Object.prototype.defineSetter
    声明了一个属性名后 get和set不可以声明同样的名字的方法名,会形成死循环造成内存溢出。

    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get
    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/set
    https://www.jb51.net/article/141739.htm
    https://www.cnblogs.com/wenxuehai/p/10333987.html