JavaScript权威设计--JavaScript对象(简要学习笔记八)

1.属性的特性
一个属性包含一个名字和4个特性。4个特性:值,可写性,可枚举性,可配置性
 
2.对象的三个属性
一:原型属性
要想检测一个对象是否是另一个对象的原型,使用isPrototypeOf()方法
如:
var P={x=1};    //定义一个原型对象
var o=Object.create(p);    //使用这个原型对象创建一个对象
p.isPrototypeOf(o)    //true:o继承自p
Object.isPrototypeOf(p)    //true:p继承自Object.prototype
 
二:类属性
确定类属性函数:classof()
function classof(o){
    if(o===null){
        return "Null";
    }
    if(o===undefined){
        return "Undefined";
    }
    return    Object.prototype.toString.call(o).slice(8,-1);
}
运行:
classof(null)    //"Null"
classof(1)    //"Number"
classof("")    //"String"
classof(new f())    //"Object"
classof(windoe)    //"Window"(这是客户端宿主对象)
 
三:可扩展性
对象的可扩展性表示是否可以给对象添加新属性。
在ECMAScript5中所有的内置对象和自定义对象都是可扩展的。
可扩展性的目的是将对象“锁定”,以避免外界的干扰。
使用Object.esExtensible()来判断对象是否是可扩展的。
使用Object.preventExtensible()将对象转换为不可扩展的。一旦将对象转换为不可扩展的话就无法转换为可扩展的了。
 
四:序列化对象
对序列化是指将对象的状态转换为字符串,也可将字符串还原为对象。
ECMAScript5提供了内置函数JSON.stringify()JSON.parse()
如:
o={
    x:1,
    y:{
        z:[false,null,""]    
    }
}
s=JSON.stringify(o)    //'{"x":1,"y":{"z":[false,null,""]}'
p=JSON.parse(s)    //p是o的深拷贝

posted on 2015-09-14 22:42 qize 阅读(...) 评论(...) 编辑 收藏

导航

公告