一.对象是javascript的基本数据类型,是一种复合值,是属性的容器,属性是由键值对组成的。
二.Js中对象分为:内置对象,宿主对象,自定义对象
三.对象的创建
(1)对象直接量:由若干个名/值对组成的映射表,是一个表达式,这个表达式的每次运算都创建并初始化一个新的对象。
例如:
var empty_oject={};定义没有任何属性的对象
var point={x:0,y:0};定义两个属性的对象
var stooge={
name:”xiyin”,
sex:”girl”,
“first-name”:”xi”
}
在对象自面量中,如果属性名是一个合法的javascript标示符且不是保留字,则可以不适用引号括住属性名,而上面的first-name是不合法的命名,所以。
(2)通过new创建对象:创建并初始化一个新对象,关键字new后面跟随一个函数(称为构造函数)调用。
例如:
var 0=new Object();//创建一个空对象, 与var 0={};等同
var a =new Array();//创建一个空数组,与 var a=[];等同
var d=new Date();//创建一个表示当前事件的Date对象
(3)Object.create(),ES5定义的,用来创建一个新对象,,第一参数,是这个对象的原型,第二个是可选的参数,用来对对象属性进行进一步的描述
Var o3=Object.create(Object.prototype); 与Var 0=new Object();//创建一个空对象, 与var 0={};等同
四.对象属性的查询(检索)和设置(更新),删除属性
(1)可以通过.号或者方括号【】,来获取属性的值
Object.property
Object[“property”]
(2)对象里的值可以通过赋值语句来更新,如果属性名已经存在于对象里,那么这个属性的值就会被替换,如果对象之前没有那个属性名,那么该属性就被扩充到对象中。
Stooge[“first-name”]=”yin”;
(3)delete运算符可以删除对象的属性 delete stooge[“first-name”],delete运算符只能删除自有属性,不能删除继承属性
五.检测属性:判断某个属性是否存在于某个对象中
(1)In运算符:左侧是属性名(字符串),右侧是对象,如果对象的自有属性,或者继承属性中包含这个属性,则返回true.
var o={x:1}
“x” in o //true
“y”in o //false
“toString” in o //true o继承toString属性
(2)对象的hasOwnProperty()方法用来检测给定的名字是否是对象的自有属性,对于继承属性它则返回false.
(3)propertyIsEnumerable(),只有检测到是自有属性且这个属性的可枚举性为true时,它才返回true
六.序列化对象
序列化对象是指对象的状态转换为字符串,也可将字符串还原为对象。
ES5提供了内置函数JSON.stringify()和JSON.parse()用来序列化和还原为javascript对象(JSON--javascript object notation javascript对象表示法)
七.对象方法
(1)toString()方法,没有参数,返回一个表示调用这个方法的对象值的字符串