JavaScript对象多个属性的访问问题:

代码如下 , 问题,为啥_year属性没有改变呢?

 var book = {};

    Object.defineProperties(book , {
        _year: {
            value: 2004
        },
        edition: {
            value: 1
        },
        year: {
            get: function(){
                return this._year;
            },
            set: function(newValue){
//                alert(newValue);
                if(newValue > 2004){
                    this._year = newValue;
                    alert(this._year);
                    this.edition += newValue - 2004;
                }
            }
        }
    });
    book.year = 2015;
    alert(book.year);   //2004
    alert(book.edition);   //1

默认是不可以修改的,自己好好看看:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperties

   var book = {};

    Object.defineProperties(book, {
        _year: {
            value: 2004,writable:true//设置为可写入,默认flase
        },
        edition: {
            value: 1, writable: true//设置为可写入,默认flase
        },
        year: {
            get: function () {
                return this._year;
            },
            set: function (newValue) {
                if (newValue > 2004) {
                    this._year = newValue;
                    this.edition += newValue - 2004;
                }
            }
        }
    });
    book.year = 2015;
    alert(book.year);   
    alert(book.edition);   

http://www.itxueyuan.org/view/6332.html

编程是一种美德,是促使一个人不断向上发展的一种原动力。

编程是一种美德,是促使一个人不断向上发展的一种原动力。