搞定js对象,第一步了解对象的属性

对象属性分两种: 数据属性和访问器属性
1.1数据属性,
那数据属性,本身有4个属性
Configurable: 是否可以通过delete删除并重新定义,默认ture
Enumerable: 是否可以通过for-in循环,默认ture
Writable: 是否可以被修改,默认ture
Value: 包含属性实际的值,比如下列的Nicholas,默认值是undefined

let person ={
	name: 'Nicholas' // name就是数据属性
}

1.2新建对象,并设置对象数据属性,可以通过Object.defineProperty定义

 let person = {}
 Object.defineProperty(person,"name",{
 	configurable:false,
 	value:"Nicholas"
 })
 // 注意Object.defineProperty定义的属性,如果不写他的数据属性,默认都是false

2.2访问器属性
1.1访问器属性,本身有4个属性
Configurable: 是否可以通过delete删除并重新定义,默认ture
Enumerable: 是否可以通过for-in循环,默认ture
Get: 获取函数,在读取属性时调用,默认 undefined
Set:设置函数,在写入属性时调用,默认 undefined
1.2例子用访问器属性 写一个属性

let book = {
  year_: 2017,
  edition: 1,
}

Object.defineProperty(book, "year", {
  get() {
    return this.year_; //返回一个值。你自己可以随意定义
  },
  set(newValue) {
    this.year_ = newValue;
    if(newValue > 2017) {
      this.edition += newValue -2017
    } // 设置函数,你可以随意定义,其他属性值得变化
  }
})

// es6写法
let person = {
	name_:"",
	get name() {
		reutrn this.name_
	},
	set name(newName) {
		this.name_ = newName
	} 
}

3.1读取属性,用Object.getOwnPropertyDescriptor和Object.getOwnPropertyDescriptors

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值