JavaScript多种属性自定义问题

 <script type="text/javascript">
    var book = {};

    Object.defineProperties(book, {
        _year : {
            value : 2004
        },

        edition : {
            value : 1
        },

        year : {
            get : function () {
                return this._year;
            },

            set : function (newValue) {
                if (newValue > 2004) {
                    this._year = newValue + 0;
                    this.edition += newValue - 2004;
                }
            }
        }

    });

    book.year = 2005;
    alert(book.edition);
    alert(book._year);

</script>

这是我的js代码,调试结果如下
图片说明
图片说明

麻烦各位兄弟了,小弟在此谢过

在_year和edition里边添加一个属性writable:true,如下,具体原理还得求其他回答
_year:{
writable:true,
value:2004
}

defineProperties定义的属性默认是只读的

Object.defineProperties参数介绍