**js进阶大纲**
简单的表面组成:
**对象的属性分两类,一类是数据属性,一类是访问器属性**
1,数据属性用来保存数据。
2,访问器属性不用来保存数据,而是定义了get,set两个函数,读取属性时,自动调用get,当访问写入属性时,自动调用set。
**属性的特性**
1,单个属性用xx.getOwnPropertyDescripeor((对象名)),(属性名))来获取
2,所有属性用xx.getOwnPropertyDescripeors((对象名)))来获取
特性:
configurable:true/false 代表是否可操作属性
enumerable : true/false 是否可遍历 就是可以for循环吗
value : 值 属性值 就是原来的值
writable: true/false 是否可修改属性值
每个对象的属性值不全一样,
一般在构造函数中有get(),代表可读取,set(),代表可修改
用Object.defineProperty来修改原有特性或添加新特性。
检测是否可扩展: Object.isExtensible(对象名) ------就是添加属性
检测是否封印: Object.isSealed(对象名)-----------能否增删,能修查
检测是否冻结: Object.isFrozen(对象名)-----------能否增删改,只能查
禁止扩展 : Object.preventExtensible(对象名)------不能添加属性了
封印 : Object.seal(对象名)-------------------不能增删,能修查
冻结 : Object.freeze(对象名)-----------------不能增删改,只能查
**每个构造函数都有一个peototype(原型)属性,值是Object对象的实例,对象中的所有方法啊属性啊都能被他的实例共享或者说继承**