属性描述符

对象中有一些属性是不想让外人所更改,所随意操作的,这个时候我们就用一种手段来保护它,就用到了属性描述符

<script type="text/javascript">
	Object.defineProperty(obj,"key",{
		enumerable:false;//是否可枚举/遍历
		configurable:false;//是否可配置:值为true和false(类似于是否可以使用类似 delete 这样的操作)
		writable:false;//是否可写的
		value:"static"//值,设置为静态说明不可改变
	});
	// 方式2:也可以一次指定多个 属性 的配置
			Object.defineProperties(this, {
				name:{
					value:name, // 默认值
					writable:false, // 可读写
					configurable:false, // 可配置(是否可以使用类似 delete 这样的操作)
					enumerable:true // 可枚举(遍历)
				},
				desc:{
					value: function(){
						console.log("i'm"+this.name);
					}, // 默认值
					writable:false, // 可读写
					configurable:false, // 可配置(是否可以使用类似 delete 这样的操作)
					enumerable:true // 可枚举(遍历)
				}
			})

		}
</script>
属性描述符的set,get方法

set,就是当你给一个东西赋值的时候就是set,

get,就是当你调用这个变量或属性的时候就是get

<script type="text/javascript">
 function Student(name,age,phone){
 	this.age=age;
 	 Object.defineProperty(this,"name",{
 	 	value:"学生",
 	 	configurable:false,//可否配置
 	 	writable:true,//可写不可写

 	});
 	 Object.defineProperty(this,"todo",{
 	 	  value:function(){
 	 	  	configurable:false;
 	 	  	console.log(this.name+"去学校");
 	 	  }
 	 });
 	 Object.defineProperty(this,"phone",{
 	 	    set:function(v){
 	 	    	
 	 	   if (v.length != 11) {

                     alert("
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值