如何在javascript中使用setter和getter,我遇到了一个错误

前端之家收集整理的这篇文章主要介绍了如何在javascript中使用setter和getter,我遇到了一个错误前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的英语不好,但我会尽力解释我的问题.
说明:警报结果是1,我不是为什么,我认为这应该是2015年提醒.
var book = {};
    Object.defineProperties(book,{
            _year: {
                value: 1
            },edition: {
                value: 23
            },year: {
                get: function () {
                    return this._year;
                },set: function (newValue) {
                    if (newValue > 2004)
                        this._year = newValue;
                }
            }
        }
    );
    book.year = 2015;
    alert(book.year);

解决方法

你需要添加writable:true就像这样
_year: {
  value: 1,writable: true
},

为__year_.

Mozilla Developer Network开始:

writable

true if and only if the value associated with the property may be changed with an assignment operator.
Defaults to false.

猜你在找的JavaScript相关文章