JS对象
2016-02-14 20:02:41 8 举报
AI智能生成
JavaScript对象是一种复合数据类型,它由属性(key)和值(value)组成。属性是对象的变量名,值是与该属性相关联的数据。对象可以通过字面量表示法或构造函数创建。对象的属性可以是基本数据类型(如字符串、数字、布尔值等),也可以是其他对象或函数。通过点符号(.)或方括号([])可以访问对象的属性。此外,对象还具有继承、封装和多态等特性,可以实现代码的复用和模块化。在JavaScript中,对象被广泛用于处理复杂的业务逻辑和数据结构。
作者其他创作
大纲/内容
JS对象
属性
名字
任意字符串
值
任意JavaScript值
getter或setter函数(ES5新增)
属性特性(property attribute)ES5才可作修改
可写(writable)
可枚举(enumerable)
可配置(configurable)
对象特性
原型(prototype)--指向另一个对象,本对象的属性继承自它的原型对象
查询原型
Object.getPrototypeOf()(ES5)
o.constructor.prorotype(不可靠)
检测原型
isPrototypeOf()
类(class)--标识对象类型的字符串
拓展标记(extensible flag)--指明了(在ES5中)是否可以向该对象添加新属性
查询
Object.isExtensible()
设置成不可拓展
Object.preventExtensions()
配合可配置性、可写性
Object.seal()
Object.freeze()
对象相关的分类
对象
内置对象--native object(数组,函数,日期,正则表达式)
宿主对象-- host object(HTMLElement等)
自定义对象--user-defined object(JavaScript代码生成)
自有属性--own property
继承属性--inherited property(原型中定义)
用法
创建(create)
对象直接量(原型为Object.prototype)
通过new创建对象(原型为构造函数的prototype属性的值)
原型
Object.create()(为ES5新增)(原型为第一个参数,可以是null)
查找(query)和设置(set)
点(.)或方括号([ ])
继承(原型链查询)
查询时才能体会到继承的存在
设置属性和继承无关
对象本身存在属性--重设属性值
对象本身不存在--新建属性
属性访问错误
不存在属性 返回undefined
对象不存在 报错--undefined、null没有属性(利用&&的短路行为)
给o的属性p赋值错误
p是只读的
p继承且只读的
不存在自有属性p,o没有使用setter方法继承属性p,并且o的可拓展性是false
删除(delete)
delete运算符
不能删除
继承属性
可配置性为false的属性
能删除
自有属性
不可拓展对象的可配置属性
检测(test)和枚举(enumerate)它的属性
检测
in运算符 检测自有属性或继承属性--属性名 in 对象
hasOwnProperty()方法
propertyIsEnumerable()方法--自有属性且可枚举性为true
枚举
for/in循环
Object.keys()--可枚举的自有属性名称,返回数组(ES5)
Object.getOwnPropertyNames()--所有自有属性,不仅仅是可枚举的(ES5)
Object.prototype的方法
toString()
toLocaleString()
toJSON()
valueOf()
0 条评论
下一页