JavaScript中的对象工具

1、创建对象:
方式:
var obj=new Object()'
obj.val=5;
obj.click=function(){alert("hello");};
或者通过键值对来创建。
var obj={
val:5,
click:function(){alert("hello");}
}
2、修改对象
有三种方式来控制对象是否能够被修改。我们根据严格程度,从最低到最高,一次进行讲解。
1、默认状态。可以随时修改js中的对象。
2、使用Object.preventExtensions(),可以阻止新的属性添加到对象中。
结果:所有当前属性都照用不误,但是新的属性不能加入。企图加入新的属性会导致TypeError错误或者是静默失败(fail silently)。如果是运行在严格模式下(strict mode)下,这类错误出现的概率更高。
3、使用Object.seal(),可以限制对象的能力,类似于Object.preventExtensions()。不过和它不同的是,属性不能够删除,也不能转换成存取器(accessor,getter方法)。删除或者添加属性同样会导致TypeError错误。已有的可写属性是例外,可以正常更新。
4、使用Object.freeze()。是三种方法中最严格的。一旦使用,对象就被认为是不可改变的了。无法再添加、删除或者更新属性。任何此类企图都会导致TypyError错误。如果属性本身就是一个对象的话那该对象可以更新。这称为浅冻结(shallow freeze)。要想生成一个完全不可改变的对象,所有值是对象的对象都必须要冻结。

重要性:理解如何控制对象的可变性(mutability),你变能能够建立一定的程度上的一致性。比如有一个叫做User的对象,你就可以确保所有基于该对象的新对象都拥有和前者相同的属性,在运行时无法添加任何属性。(类似于java中的final修饰符,在创建父类的时候使用这个修饰符可以使得子类无法修改父类中的属性与方法)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值