zoukankan      html  css  js  c++  java
  • 面向对象-数据属性

    数据属性

    数据属性包括:

    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;
    
                        }
    
                    }
    
                });
  • 相关阅读:
    Effective C++学习笔记:确定基类有虚析构函数
    WPF和Silverlight程序中DispatcherTimer与Timer的区别
    2011.12.23
    WP7里的JSON解析
    2011.11.16
    2011.12.21
    2011.11.18
    2011.11.17
    2011.11.24
    WebClient does not support concurrent I/O operations 错误的解决办法
  • 原文地址:https://www.cnblogs.com/y8932809/p/5386835.html
Copyright © 2011-2022 走看看