JavaScript对象,了解一下
对象
基本数据类型
是一种复合值
对象也可以看做是属性的无序集合
还可以从一个称为圆形的对象继承属性
对象的方法通常是继承的属性
原型继承 prototypal inheritance 是核心特性
对象是可变的
三大相关的对象特性
对象的原型protopype 指向另外一个对象,对象的属性继承自它的原型对象 对象的类 是一个标识对象类型的字符串 对象的扩展标记,指明了在ecma 5 是否可以向该对象添加新属性
内置对象
native object 是由ecmascript 规范定义的对象或类 例如数组、函数都是内置对象
宿主对象
所嵌入的环境定义的,htmlelement对象是宿主对象,
js的宿主就是,浏览器的对象。就是宿主对象
自定义对象
*属性
own property
继承属性
inherited property
创建对象的三种方法
一、
var nullobject ={} //空对象
二、
var d = new date(); //
new后面跟一个函数调用
这里的函数称作构造函数constructor
构造函数用以初始化一个新创建的对象。
javascript核心中的原始类型都包含内置构造函数
原型
每个javascript对象(null)除外,都和另一个对象相关联
另一个对象就是原型
每个对象都从原型继承属性
所有通过对对象直接量创建的对象都具有同一个原型对象
可以通过object.prototype获得对原型对象的引用
new 和 构造函数调用 创建对象的原型就是构造函数的prototype属性的值
object.prototype不继承任何属性
其他原型对象都是普通对象
普通对象都具有原型
所有的内置构造函数都具有一个继承object的原型
date 继承object和date 这一系列链接的原型对象就是所谓的原型链 prototype chain
三、
object.create()方法
创建一个新对象,第一个参数是这个对象的原型
对象的三个属性
原型prototype 类class 是一个字符串,表示对象的类型信息,tostring方法可以查询 可扩展性extensible attribute 表示是否可以给对象添加新属性,所有内置对象和自定义对象都是显式可扩展的
序列化对象
将对象的状态转换为字符串
json.stringfy()
json.parse()
json javascript object notation
对象方法
tostring()返回一个表示调用这个方法的对象的字符串
valueof() 将对象转换为某种原始值而非字符串的时候才会调用它