Object.defineProperty&& Object.create && Object.defineProperties

Object.defineProperty(obj,‘prop’,descriptor)定义对象中的新属性或者修改原有的属性
  • 三个参数必须 ,不能省略
    在这里插入图片描述
//设置对象属性的方法
        Object.defineProperty(obj, 'name', {
            value: 'Ning'
        })
        console.log(obj.name)
  • 属性用 ‘ ’ 抱起来
    • 当设置了 writable 属性 ,通过obj.name 无法改变属性值,通过 .defineProperty()可以如果他的特性configurable为true的话,否则不行。
  • 利用 .defineProperty()方法定义的熟悉,第三个参数中的 enumerable默认为 false ,不能遍历
delete obj.value 删除对象中的某个属性
//Object.create(prototype, descriptors) 以指定对象为原型 创建新对象, 并且为新对象指定新属性
		var objj = {
			name: 'ren'
		}
		var objo = Object.create(objj, {
			age: {
				value: 18,
				writable: true,
				configurable: true,
				enumerable: true
			}
		})
		console.log(objj,objo.age)
		//为指定对象拓展多个属性
		Object.defineProperties(objj, {
			fullName: {
				get() {
					return this.name + 'aaaa'
				},
				set(value) {
					this.name = value +'fffs'
				}
			}
		})
		console.log(objj.fullName)
		objj.fullName = 'fsf'
		console.log(objj.fullName)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RxnNing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值