面向对象-数据属性

数据属性

数据属性包括:

Configurable: 表示能否通过delete删除属性,从而重新定义属性。默认值是true。

Enumerable:表示能否通过for-in循环返回属性。默认值是true。

Writable: 表示能否修改属性的值。默认值是true。

Value: 包含这个属性的数据值,读取属性的时候从这个位置读,写入属性的时候从这个位置写。默认值是undefined。

如果要修改默认属性,必须使用object.defineProperty()方法。这个方法接收三个参数。

配置是否可修改的属性

    var person = {};

        Object.defineProperty(person, "name", {

            writable: false,

            value: "Nicholas"

        });

        alert(person.name);//Nicholas

        person.name = "ui";

        alert(person.name);//Nicholas

配置是否可删除

var person = {};

        Object.defineProperty(person, "name", {

            configurable: false,

            value: "Nicholas"

        });

        alert(person.name);//Nicholas

        delete person.name;

        alert(person.name);//Nicholas

访问器属性 get set

var book = {

            _year: 2004,

            edition: 1

        };

        Object.defineProperty(book, "year", {

            get: function () {

                return this._year;

            },

            set: function (newValue) {

                if (newValue > 2004) {

                    return this._year;

                    this.edition += newValue - 2004;

                }

            }

        });

        book.year = 2005;

        alert(book.edition); //2

定义多个属性

Object.defineProperty(book, {

                _year: {

                    Value: 2004

                },

                Year: {

                    get: function () {

                        return this._year;

                    }

                }

            });
原文地址:https://www.cnblogs.com/y8932809/p/5386835.html