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的深拷贝
复制代码


转载:http://www.cnblogs.com/zqzjs/p/4808522.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值