对象的数据属性和访问器属性

在javaScript中,对象的属性分为两种类型:数据属性和访问器属性。

一、数据属性

例如:

  

此外:

  数据属性包含四个特性

  用Object.getOwnPropertyDescriptor('对象','属性名')访问

  configurable:表示能否通过delete删除属性从而重新定义属性,能否修改属性的特性,或能否把属性修改为访问器属性,默认为true
  enumerable:表示能否通过for-in循环返回属性
  writable:表示能否修改属性的值
  value:包含该属性的数据值。默认为undefined

  

  

   修改属性属性的默认特性要用到一个方法:Object.defineProperty()方法

  

 

 二、访问器属性

  这个属性是通过Object.defineProperty(obj,'属性名',{})定义的,如下:

  

  如上图:

    其中,name属性为访问器属性,其特性不包含value和writable,多了set和get方法,并通过这两个方法写读属性值,但set和get方法没有任何关系,上例通过me来传递值(一般可以用对象的数据属性来传递)。

    此外,访问器属性的configurable和enumerable特性值默认为false,因configurable为false,如果程序后面需要对该属性进行delete操作等,那就在定义访问器属性时,将这个特性设置为true,不然这个会导致后面一些报错的问题。

    通过对象的数据属性传递访问器属性里面set方法设置的值

    

 

posted on 2018-06-23 15:14  myMaria  阅读(280)  评论(0)    收藏  举报

导航