对象及defineProperty 方法

数据属性

  1. configurable
    • 属性是否可以通过 delete 删除并重新定义
    • 是否可以修改他的特性(属性是否可以被配置)
    • 是否可以把它改为访问器属性
    • 默认 true
  2. enumerable 属性是否可以通过 for-in 循环返回 默认true
  3. writable 属性值是否可以被修改 默认 true
  4. value 属性的实际值
  5. 在属性被定义为不可配置之后,就不能再修改除了writable之后的值了!!!!

访问器属性

  1. configurable
  2. enumerable
  3. get 读取该属性时调用 get 并返回结果
  4. set (newvalue) 修改该属性时会将修改的值传入 set

对象方法

  1. Object.defineProperty 定义单个属性

    民丰网站建设公司创新互联公司,民丰网站设计制作,有大型网站制作公司丰富经验。已为民丰成百上千提供企业网站建设服务。企业网站搭建\成都外贸网站建设公司要多少钱,请找那个售后服务好的民丰做网站的公司定做!

    // 使用这种方法不定义 configurable enumerable writable时,会默认为false
    Object.defineProperty(obj,key,{
     	configurable:true,
     	enumerable:true,
     	writable:true,
     	value:"value"
     })
     // getter 和 setter 的使用
     Object.defineProperty(obj,key,{
     // get会在该属性被读取时调用
     	get(){
     		return this.key
     	},
     	// set 会在该属性被修改时调用
     	set(newValue){
     		this.key = newValue
     	}
     })
    
  2. Object.defineProperties 定义多个属性

    let book = {} 
    // 使用这种方法不定义 configurable enumerable writable时,会默认为false
    Object.defineProperties(book,{
      edition:{
        value:1,
        writable:true
      },
      year_:{
        value:2017
      },
      year:{
        get(){
          return this.year_
        },
        set(newValue){
          if(newValue > 2017){
            this.year_ = newValue;
            this.edition += (newValue - 2017)
            console.log(this.edition);
          }
        }
      }
    })
    

标题名称:对象及defineProperty 方法
文章位置:http://pwwzsj.com/article/dsojhhj.html