zoukankan      html  css  js  c++  java
  • JS-OO-数据属性,访问器属性

    一、数据属性

    Configurable:表示能否通过Delete删除属性从而重新定义属性,能否修改属性的特性,能否把属性修改为访问器属性。默认true。

    Enumerable:表示能否通过for-in循环返回属性。默认true。
    Writable:表示能否修改属性的值。默认true。
    Value:包含这个属性的数据值。默认undefined。
    要修改属性默认值,必须使用Object.defineProperty()方法。
    参数:属性所在的对象,属性的名字和一个描述符对象(descriptor:configurable、enumerable、writable、value之一)。
    例:
    var person = {};
            Object.defineProperty(person, "name", {writable:false,value:"chensuqian"});//name值是只读的
            alert(person.name);
            person.name="hello world";
            alert(person.name);
    两次值相同。
    二、访问器属性
    Configurable:表示能否通过delete删除属性从而重新定义属性,能否修改属性的特性,或者能否把属性修改为数据属性。默认true。
    Enumerable:表示能否通过for-in循环返回属性。默认true。
    Get:读取属性时调用。默认undefined。
    Set:写入属性时调用。默认undefined。
    访问器属性不能直接定义,必须使用Object.defineProperty()方法定义。
    var book = { _year: 2004, edition: 1 };
            Object.defineProperty(book, "year",
            {
                get: function () { return this._year; },
                set: function (value) {
                    if (value > 2004) {
                        this._year = value;
                        this.edition += value - 2004;
                    }
                }
            });
            book.year = 2015;
            alert(book.edition);
  • 相关阅读:
    显示/隐藏Mac下的隐藏文件
    遍历指定文件下所有文件,删除指定后缀文件
    ssh公钥
    设置状态栏(statusbar)的样式
    Silverlight上传下载三种方法解析(三)
    Silverlight上传下载三种方式解析(二)
    Silverlight 上传下载之三种方式解析
    一个简单的存储过程代码生成器
    .net 程序发生了一个不可捕获的异常
    n取的r的组合数问题
  • 原文地址:https://www.cnblogs.com/chensuqian/p/9644716.html
Copyright © 2011-2022 走看看