ECMAScript5——对象拓展

对象可以被任意操作,添加属性、 删除属性、 修改属性值

一、可扩展性

1.1 Object.preventExtensions( ) 取消对象可扩展性

功能:不能再添加新的属性,但是可以删除属性 和 修改属性

使用方式:

    Object.preventExtensions(obj)

参数:obj: 要处理的对象

1.2 Object.isExtensible( )  查看对象是否取消了可拓展性

使用方式: 

    Object.isExtensible(obj)

参数:obj: 要处理的对象

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<script type="text/javascript">
	// 定义对象
	var obj = {
		a: 1,
		b: 2
	}
	// 此时obj中的属性,可以被任意操作 ,添加属性、 删除属性、 修改属性值
	// 添加属性
	// obj.c = 3;
	// // 删除属性
	// delete obj.a;
	// // 修改属性
	// obj.b = 5;

	// ES5定义了取消可拓展性的方法   // 不能再添加新的属性了。
	// Object.preventExtensions(obj);
	// 尝试添加属性
	// obj.c = 3;
	// // 输出
	// console.log(obj)



	// 查看obj是否取消了可拓展性
	console.log(Object.isExtensible(obj))
	</script>
</body>
</html>

二、封闭

2.1 Object.seal( )  对象封闭

功能:对象封闭之后, 可以修改属性, 但不能拓展添加属性, 也不能删除属性

使用方式:

    Object.seal(obj)

参数:obj: 要处理的对象

2.2 Object.isSealed( )  查看对象是否封闭

使用方式: 

    Object.isSealed(obj)

参数:obj: 要处理的对象

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<script type="text/javascript">
	// 定义对象
	var obj = {
		a: 1,
		b: 2
	}
	// 此时obj中的属性,可以被任意操作 ,添加属性、 删除属性、 修改属性值
	// 添加属性
	// obj.c = 3;
	// // 删除属性
	// delete obj.a;
	// // 修改属性
	// obj.b = 5;

	// ES5 为对象拓展了一个封闭的方法
	Object.seal(obj)
	// 封闭之后, 可以修改, 但不能拓展, 也不能删除属性。

	// 查看对象是够封闭
	console.log(Object.isSealed(obj))
	</script>
</body>
</html>

三、冻结

3.1 Object.freeze( )  对象冻结

功能:对象封闭之后,不能拓展添加属性,不能修改属性,也不能删除属性

使用方式:

    Object.freeze(obj)

参数:obj: 要处理的对象

3.2 Object.isFrozen( )  查看对象是否冻结

使用方式: 

    Object.isFrozen(obj)

参数:obj: 要处理的对象

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<script type="text/javascript">
	// 定义对象
	var obj = {
		a: 1,
		b: 2
	}
	
	// 此时obj中的属性,可以被任意操作 ,添加属性、 删除属性、 修改属性值
	// 添加属性
	// obj.c = 3;
	// // 删除属性
	// delete obj.a;
	// // 修改属性
	// obj.b = 5;

	// ES5为对象提供了冻结方法
	Object.freeze(obj)
	// 总结: 当对象处于冻结状态时候, 不能添加属性、 不能删除属性、 也不能修改属性值
	
	// 查看obj 是否处于冻结状态
	Object.isFrozen(obj)

	</script>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值