Js对象操作之属性访问篇

前提说明:本篇为自学随记,可供JS自学者查看。

<!doctype html>
<html>
 <head>
  <title>Document</title>
 </head>
 <body>
    <script type="text/javascript">

	   //ECMAScript 5中新增加的4个访问对象属性的函数:
	   //Object.getPrototypeOf(object);  返回指定对象的原型
	   //Object.getOwnPropertyDescriptor(object,propertyname);  获取指定对象的私有属性的描述符
	   //Object.getOwnPropertyNames(object);  返回指定对象私有属性(直接对该对象定义的属性,而不是从该对象原型继承的属性)的名称数组,包括了可枚举和不可枚举的属性和方法
	   //Object.keys(object);  仅可返回指定对象可枚举属性和方法名称

	   //Object.getPrototypeOf
	   function Pasta(grain,width)
	   {
		   this.grain=grain;
		   this.width=width;
	   }

	   var spaghetti=new Pasta("wheat",0.2);
	   var proto=Object.getPrototypeOf(spaghetti);
	   document.write(proto===Pasta.prototype);
	   document.write("</br>");

	   //Object.getOwnPropertyNames
	   function Pasta1(x,y,z)
	   {
		   this.x=x;
		   this.y=y;
		   this.z=z;
		   this.toAdd=function()
		   {
			   return this.x+this.y+this.z;
		   }
	   }

	   var obj =new Pasta1(1,2,3);
	   var arr=Object.getOwnPropertyNames(obj);
	   document.write(arr+"</br>");

	   //Object.keys
	   var obj2={};
	   Object.defineProperty(obj2,"toAdd",{
		   value:100,
		   writable:true,
		   enumerable:false,  //将对象的属性toAdd的属性描述改为不可枚举时,通过Object.keys不可获取到该属性名称
		   configurable:true
	   });
	   obj2.x=1;
	   obj2.y=2;
	   document.write(Object.keys(obj2)+"</br>");

	   //Object.getOwnPropertyDescriptor 注意:该函数返回的是属性的描述符,而非属性描述数组
	   var descrip=Object.getOwnPropertyDescriptor(obj2,"toAdd");  //通过数组储存其返回的属性描述符,然后通过for/in语句遍历
	   for (i in  descrip) 
	   {
		   document.write(descrip[i]+"&nbsp;");
	   }
	   
	</script>

 </body>
</html>

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值