1.对象的概念引用类型无序键值对的集合2.新建空对象{ }3.对象的属性访问属性object.属性名/object[属性名]用于包含特殊字符的属性名新建属性object.新属性名值会修改原对象/{...obj, 新属性名: 值}不修改原对象删除属性delete object.属性名属性描述符描述对象属性的特征元数据本质是一个对象设置某个属性的属性描述符Object.defineProperty(obj,属性属性描述符对象)属性描述符对象的值数据属性value wirtable访问器属性getfunc setfunc configurable是否可更改enumerable是否可枚举vue的双向绑定原理访问器属性在被更改时执行函数通过一些列操作重新渲染页面使得页面也同步呈现修改后的属性获取某个属性的属性描述符Object.getOwnPropertyDescriptor(obj属性名)获取全部属性的属性描述符Object.getOwnPropertyDescriptorsobj4.对象的原型链构造函数是用于创建实例对象的一个工具函数用new标识新建实例对象的操作构造函数有一个属性prototype该属性指向其原型对象对象实例也有一个属性[[prototype]]/_proto_已弃用该属性指向创建其实例的构造函数的原型对象原型对象又有一个属性constructor指回其构造函数原型对象也是一个实例对象它至少是Object构造函数的实例对象所以也有一个[[prototype]]指向Object构造函数的原型对象到Object.prototype后就终止了这样就形成了链条叫原型链意义实例对象都可以访问构造函数的原型对象中存的方法和属性即公共的5.原型对象的继承将一个构造函数的原型对象指向另一个构造函数的原型对象的副本实现继承继承时要注意子类的原型对象的constructor的指向组合继承父类原型对象的副本是父类的实例注意继承父类的非原型链上的资源时非原型链上的方法的this指向的仍旧是父类要指向子类自身则需调用一次父类的构造函数重新绑定this到自身父类构造函数.callthis,参数列表寄生组合继承父类原型对象的副本是新建父类的拷贝对象Object.create(prototype)该方法创建一个新对象并指定其隐式原型寄生组合解决了需要两次调用父类构造函数的缺点6.对象混合将两个对象混合产生一个新对象Object.assign({},o1,o2,...)该方法将第一个参数对象后面的参数对象的属性依次赋值给第一个参数对象从左到右若属性同名则后处理的覆盖掉先处理的然后返回第一个参数对象可用于设置默认值第二个对象放默认对象第三个对象放用户输入的值第一个对象仍是空对象7.对象克隆浅克隆创建一个新对象循环遍历克隆的原对象的每一项如果是引用类型也克隆其引用即引用是相同的深克隆在对象的属性也是引用类型的时候也要深克隆那个引用类型通过递归某个值是引用类型的时候把这个值当做一个对象然后这个对象进行克隆即新建一个对象然后把引用类型的值非地址放到这个新建的对象里这样属性克隆就完成最后深克隆拿到的是这个新建对象属性的地址新的副本而非相同引用。但一般递归是不考虑如何做的只需要知道逻辑引用类型要深克隆那就递归调用把那个值进行深克隆就行了非引用类型就直接赋值这样就完成了深克隆克隆函数传两参数一个是克隆原对象或原数组一个是判断是否深克隆若深克隆则引用类型的属性也要使用这个克隆函数传的俩参数一个是克隆原对象的属性引用类型也是一个对象或数组一个是true确认深克隆