对象属性定义

let obj = {}

// 1。给对象添加属性 对象.或对象[]
obj.name = "张三"

console.log(obj.name, obj.age)


// js中可以通过Object.defineProperty()方法,可以为对象添加自定义的属性
// 参数1 添加属性对象  参数2 添加的属性名 参数3 添加的属性值(配置对象)
Object.defineProperty(obj, "phone", {
	value:110,
	// enumerable 是否允许枚举,遍历
	enumerable:false,
	// writable 属性值是否可以修改,默认为false 表示不能修改
	writable:true
})

// console.log(obj.phone)
// obj.phone = 120
// console.log(obj.phone)


// 定义属性,这个属性值必须是一个数字类型
Object.defineProperty(obj, "age", {
	
	// 属性允许被修改,定义了一个set函数,用于设置属性值
	set(v){
		// 如果要赋值的数据是一个数字类型,正常赋值
		// if (typeof v == "number"){
		// 	this._age = v
		// }else{
		// 	// 如果不是数字类型,抛出异常
		// 	throw new TypeError("age值必须是数字类型")
		// }
		
		// 只读属性,只能进行属性访问,不能进行修改
		throw new ReferenceError("This property is readonly!")
	},
	// 获取属性值,定义了一个get函数,用于获取属性值
	get(){
		// 返回固定值
		return 22
	}
})
// 对象.属性名 = 值 设置对象的属性
// obj.age = "20"

// obj.age 获取对象的属性值,执行属性的get函数
console.log(obj.age)





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值