关于Object.defineProperties()方法

看《JavaScript高级程序设计》(第3版)到 6.1.2 节的时候,书里写着 “这个方法接收两个对象参数,第一个对象时要添加和修改其属性的对象,第二个对象的属性与第一个对象中要添加或修改的属性一一对应。”

然后看例子,我有些迷惑,网上查找搜到

Object.defineProperties(obj,props)

看起来第二个参数是属性,不知道是书翻译有误,还是自己理解有误,但第二个参数是属性就好理解多了。下面是例子:

var book = {};

Object.defineProperties(book, {

     //定义两个数值属性_year,edition

     _year:{

        writeable:true,

        value:2004

    },

    edition:{

        writeable:true,

        value:1

    },

   //定义一个访问器属性 year

    year:{

        get:function(){

            return this._year;//_year 前面的下划线是一种常用的记号,用于表示只能通过对象方法访问的属性

        },

        set:function(newValue){

            if(newValue > 2004){

                 this._year = newValue;

                 this.edition += newValue - 2004;

            }

       }

  }

});

book.year = 2005;

alert(book.edition);

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容