js 面向对象编程
定义: 无序属性值的集合,属性可以是基本值,对象或者是函数。(数组也可以看做是对象,下标是属性名) 数据属性: configurable :表示能否通过delete删除属性从而重新定义属性,能否修改属性的特性或者能否把属性修改为访问器属性。 enumerable:表示能否通过for-in循环返回属性。 writable:表示能否修改属性的值。 value:包含这个属性的数据值。 要修改属性默认的特性(前三个默认为true,最后一个默认为undefined,这也是为什么属性定义了而未初始化的时候是undefined的原因。)。必须使用Object.defineProperty()方法,这个方法接受三个参数,属性所在的对象、属性的名字和一个描述符对象(上面四个中的一个或者多个) 访问器属性 configurable,enumerable属性同上。 get:在读取属性时调用的函数; set:在设置属性时候使用的方法。 访问器属性不能直接定义,必须使用Object.defineProperty()来定义。 判断属性位置 通过in和hasOwnProperty()来确定属性是在原型中还是在对象中 in是沿着原型链一直寻找属性,而hasOwnProperty()只在当前对象中寻找。 三种遍历方式 for-in,Object.keys(),Object.getOwnPropertyNames()