zoukankan      html  css  js  c++  java
  • js 属性类型之数据属性

    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="UTF-8">
    		<title></title>
    	</head>
    	<body>
    		<script type="text/javascript">
    			//对象的属性类型
    			//对象分为数据属性和访问器属性
    			//1、数据属性:[[Configurable]]、[[Enumerable]]、[[Writable]]、[[Value]]
    			//	Configurable是否可以通过delete删除属性
    			//	Enumerable可否for-in
    			//	Writable能否修改属性值
    			//	Value读取这个属性的数据值
    			
    			var person = {
    				name: "宝清老窖",
    			}
    			//创建一个person对象,该对象创建了一个名为name的属性,值为“宝清老窖”。
    			//也就是说,[[Value]]特性将被设置为“宝清老窖”
    			
    			//要修改属性默认的特性,必须使用ECMAScript5的Object.defineProperty()
    			//改方法包含三个参数,1、属相所在的对象;2、属性的名字;3一个描述符;
    			//其中描述符(descriptor)对象的属性必须是:configurable、enumerable、writable、value
    			var person = {};	//writable
    			Object.defineProperty(person , "name" , {
    				writable: false,
    				value: "宝清老窖"
    			});
    			alert(person.name);		//宝清老窖
    			person.name = "金宝清";
    			alert(person.name);		//宝清老窖
    			
    			var person2 = {};	//Configurable
    			Object.defineProperty(person2 , "name" , {
    				configurable: false,
    				value: "宝清老窖"
    			});
    			alert(person2.name);
    			delete person2.name;
    			alert(person2.name);
    			//当configurable为false的时候,不能用delete删除
    			//如果用delete删除,在非严格模式下什么都不会发生,在严格模式下会报错
    			
    			//一旦把configurable变为false就不能再变回true了,会报错
    			var person3 = {};
    			Object.defineProperty(person3 , "name" , {
    				configurable: false,
    				value: "宝清老窖"
    			});
    			Object.defineProperty(person3 , "name" , {
    				configurable: true,			//会报错
    				value: "宝清老窖"
    			});
    			//
    		</script>
    	</body>
    </html>
    

      提取出js部分

        //对象的属性类型
    			//对象分为数据属性和访问器属性
    			//1、数据属性:[[Configurable]]、[[Enumerable]]、[[Writable]]、[[Value]]
    			//	Configurable是否可以通过delete删除属性
    			//	Enumerable可否for-in
    			//	Writable能否修改属性值
    			//	Value读取这个属性的数据值
    			
    			var person = {
    				name: "宝清老窖",
    			}
    			//创建一个person对象,该对象创建了一个名为name的属性,值为“宝清老窖”。
    			//也就是说,[[Value]]特性将被设置为“宝清老窖”
    			
    			//要修改属性默认的特性,必须使用ECMAScript5的Object.defineProperty()
    			//改方法包含三个参数,1、属相所在的对象;2、属性的名字;3一个描述符;
    			//其中描述符(descriptor)对象的属性必须是:configurable、enumerable、writable、value
    			var person = {};	//writable
    			Object.defineProperty(person , "name" , {
    				writable: false,
    				value: "宝清老窖"
    			});
    			alert(person.name);		//宝清老窖
    			person.name = "金宝清";
    			alert(person.name);		//宝清老窖
    			
    			var person2 = {};	//Configurable
    			Object.defineProperty(person2 , "name" , {
    				configurable: false,
    				value: "宝清老窖"
    			});
    			alert(person2.name);
    			delete person2.name;
    			alert(person2.name);
    			//当configurable为false的时候,不能用delete删除
    			//如果用delete删除,在非严格模式下什么都不会发生,在严格模式下会报错
    			
    			//一旦把configurable变为false就不能再变回true了,会报错
    			var person3 = {};
    			Object.defineProperty(person3 , "name" , {
    				configurable: false,
    				value: "宝清老窖"
    			});
    			Object.defineProperty(person3 , "name" , {
    				configurable: true,			//会报错
    				value: "宝清老窖"
    			});
    			//            
    

      

  • 相关阅读:
    C#发邮件
    C#循环遍历mysql
    【转】C#获取当前日期时间(转)
    C#设置DataGridView控件的标题行的高度并且居中显示
    c#窗体实现验证码
    Git 常用命令清单,掌握这些,轻松驾驭版本管理
    Vue 常见面试问题,你可能都知道,但能答好吗?
    Node 爬虫,批量爬取头条视频并保存
    Node 爬虫,批量下载并保存图片
    NodeJS MySql 执行多条sql语句
  • 原文地址:https://www.cnblogs.com/xudy/p/5417151.html
Copyright © 2011-2022 走看看