zoukankan      html  css  js  c++  java
  • 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的深拷贝
  • 相关阅读:
    文言文
    【我回来了】TO DO LIST
    AFO
    [DP]
    [CF1221F]Choose a Square
    关于博主(2)
    自我介绍( 并不?
    老年选手的复健之路
    CSP/NOIP 2019 游记
    CSP前模板复习
  • 原文地址:https://www.cnblogs.com/zqzjs/p/4808522.html
Copyright © 2011-2022 走看看