欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  web前端

js对象的详细介绍

程序员文章站 2022-04-06 20:40:22
...
a.  js对象都是关联数组

b.  inherit();返回一个继承自原型对象p的属性的新对象

对象的方法:

  创建(create) 设置(set) 查找(query) 删除(delete) 检测(test)和枚举(enumerate)

创建对象的方法:

  对象直接量 关键字new es5中的Object.create()

  var aa=Object.create({"x":0,"y":1})

属性的读取和修改:

  1.通过 . 连接 属性不可以改变,不能在运行时更改

  2.通过object['xxx']; 属性可以是变量,比如 object['xx'+a]; a可以是个变量,这样属性就不确定了,可以在运行中更改

  3.查询一个没有的属性会返回undefined

  4.查询一个对象的属性,如果对象不存在,就会抛出一个错误。如果查询某对象的属性,不让他报错可以这样:

    var a=b&&b.c&&b.c.d;

属性的删除

  1. delete只能断开宿主与宿主对象的联系,而不会去操作属性中的属性,不能删除通过变量声明或函数声明创建的全局全局对象属性,成功返回true,失败返回false

    delete a.b//a不再拥有属性b

    delete a['b']//a不再拥有属性b

属性的检测

  1.in运算符,hasOwnProperty(),propertyIsEnumerable()

    in左侧属性名,有侧是对象如果对象的自有属性或继承属性包含这个属性就返回true,否则false

    var a={x:1} a.hasOwnPreperty('x');//true

    propertyIsEnumerable()是hasOwnPreperty()的增强版,只有属性是可枚举的,并且属于这个对象,才返回true

  2.最简单的方法!==是否为undefined

属性的枚举

  1.在代码中给对象添加的所有属性都是可枚举的,在for/in中我们需要跳过一些属性

    for(p in o){

      if(!o.hasOwnproperty(p)) continue ;//跳过继承属性

    }

    for(p in o){

      if(typeof o[p]==="function") continue ;//跳过方法

    }

  2.在es5中多了两个函数

    Object.keys();//返回一个数组,这个数组由对象中可枚举的自有属性组成

    Object.getOwnPropertyNames();//返回对象中所有自有属性的名称

属性getter和setter (存取器属性)

  1.var 0={

    a:1,//普通的数据属性

    //存取器属性都是成对定义的函数

    get b(){这里是函数体},

    set c(){这里是函数体}

}

对象的三个属性

  1.原型属性:

    var p={x:1};//定义一个原型对象

    var o=Object.create(p);使用这个原型创建一个对象

    p.isPrototypeOf(0);//true,o继承自p

    Object.prototype.isPrototypeOf(o);//p继承自Object.prototype

  2.类属性

  3.可扩展性 通过把对象传入Object.esExtensible()判断对象是否是可扩展的

    Object.prevenExtensions()将带转换的对象作为参数传进去,就会变成不可扩展的,注意,转换成就不能转换回来了

    Object.seal()不仅能够把对象设为不可扩展,而且能把其自身的的所有自有属性设为不可配置

    isSealed()检测对象是否封闭

    Object.freeze() 冻结,不光不可配置,而且止咳可读

    Object.isFrozen() 检查对象是否冻结

对象序列化

  1:JSON.stringify();//转换为JSON字符串

  2::JSON.parse();//转换为对象

对象方法:

  1.toString();

  2.toLocaleString();

  3.toJSON();

  4:valueOf();

以上就是js对象的详细介绍的详细内容,更多请关注其它相关文章!

相关标签: javascript 对象