开发者社区 问答 正文

Javascript用定义多个属性方法却赋不了值

var book={};
Object.defineProperties(book,{

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

   book.year=2005;
   console.log(book.year);

展开
收起
a123456678 2016-03-11 11:31:22 1890 分享 版权
1 条回答
写回答
取消 提交回答
  • 通过Object.defineProperties定义对象属性,如果没有配置 writable: true 的话默认writable:false`_year:{

    value:2004,
    writable: true
    },`
    这样就可以配置_year属性可写入

    2019-07-17 18:58:49
    赞同 展开评论