-
JavaScript教程之js权威指南学习笔记(四)对象(4)
-
-
7、对象的三个属性
(1)原型属性
原型属性是在实例对象创建之初就设置好的。
通过Object.getPrototypeOf()方法可以查询某个对象的原型
如:
检测一个对象是否是另一个对象的原型,用isPrototypeOf()方法
(2)类属性
对象的类属性是一个字符串,用以表示对象的类型信息。
通过toString()方法可以间接的查询到这个对象的类属性。返回如下格式的字符串:
[ object class ]
因此,要想获得对象的类,可以调用对象的toString()方法,然后提取已返回字符串的第8个到倒数第二个位置之间的字符。
如
(3)、可扩展性
-
对象的可扩展性用以表示是否可以给对象添加新属性。可以通过将对象传入Object.isExtensible(),来判断该对象是否是可扩展的。
-
如果想将对象转换为不可扩展的,需要调用Object.preventExtensions(),将待转换的对象作为参数传进去。
对象一旦转换为不可扩展,就无法再将其转换为可扩展的。给一个不可扩展的对象的原型添加属性,这个不可扩展的对象同样会继承这些新属性。
-
Object.seal(Object);它除了可以设置对象的不可扩展,还可以设置对象的自有属性都设置为不可配置的,不能删除和配置。对于它已经有的可写属性依然可以设置。
-
Object.isSealed(Object); 检查对象是否封闭。
-
Object.freeze();更严格的锁定对象(冻结)。除了将对象设置为不可扩展,属性设置为不可配置,所有的自有属性设置为只读的,(如果对象存储器属性有setter方法,存储器属性不受影响,依然可以通过属性赋值给他们)。
-
Object.isFrozen() 来检测对象是否冻结。
8、序列化对象
对象序列化(serialization)是指将对象的状态转换为字符串,也可以将字符串还原为对象。
使用函数JSON.stringify()和JSON.parse()用来序列化和还原javascript对象。
函数、RegExp、Error对象和undefined值不能序列化和还原。JSON.stringify()只能序列化对象可枚举的自有属性。
github地址:https://github.com/tonysmile
博客园地址:https://www.cnblogs.com/tonysmile/
Copyright ©2018 tonysmile
【转载文章务必保留出处和署名,谢谢!】