JS对象属性操作之定义属性篇

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

<!doctype html>
<html>
 <head>
  <title>Document</title>
 </head>
 <body>

    <script type="text/javascript">


	//定义属性
	//1.通过(名:值)方式在对象结构体内定义属性  2.通过点运算符在对象结构体外定义属性   3.通过构造函数定义属性
	//ECMAScript 5中增加的两个静态函数,用来为指定对象定义属性:Object.defineProperty和Object.defineProperties
	var o1={
		x:1,
		y:2
	}
	document.write(o1.x+" "+o1.y);
	document.write("</br>");

	var o2={};
	o2.x=3;
	o2.y=4;
	document.write(o2.x+" "+o2.y);
	document.write("</br>");

	var o3=function()
	{
		this.x=5;
		this.y=6;
	}
	document.write(new o3().x+" "+new o3().y);
	document.write("</br>");

	//静态函数Object.defineProperty(object,propertyname,descriptor)   将新属性添加到对象,在对象没有指定的属性名称时执行此操作
	//object :必须参数,指定要添加或修改的对象,可以使js本地对象(用户自定义对象或内置对象)和DOM对象
    //propertyname:必须参数,要定义的属性名
	//descriptor:必须参数,描述属性特性

	var obj={};
	Object.defineProperty(obj,"newDateProperty",{
		value:101,
		writable:true,
		enumerable:true,
		configurable:true
	});

	//obj.newDateProperty=102;  //修改属性值
	document.write(obj.newDateProperty+"</br>");


	//静态函数Object.defineProperties(object,descriptor)   添加多个或修改多个对象的现有属性

	var obj1={};
	Object.defineProperties(obj1,{
		newDateProperty:{
			value:110,
			writable:true,
			enumerable:true,
			configurable:true
		},

		newAccessorProperty:{
			set:function(x)
			{
				this.newaccpropvalue=x;
			},
			get:function()
			{
				return this.newaccpropvalue;
			},
			enumerable:true,
			configurable:true
		}
	});

	obj1.newAccessorProperty=111;
	document.write(obj1.newDateProperty+"</br>");
	document.write(obj1.newAccessorProperty+"</br>");

	</script>

 </body>
</html>

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值