静态成员:构造函数对象自己的属性和方法
实例成员:直接定义在实例上的属性和方法
原型成员:直接定义在原型对象上的属性和方法
所有对象都是Object的实例,所以可以访问Object的静态成员
Object.toString:返回对象的字符串描述信息object类型返回[object Object]- 函数、数组类型返回字符串形式
Number类型可调用该方法,传递参数,表示转换进制
Object.apply/call:调用其他对象的方法Object.arguments:接收存储函数的实参Object.assign:属性拷贝Object.caller:返回一个函数的引用,这个函数调用了当前的函数;另外callee放回正在执行的函数本身的引用,它是arguments的一个属性,常用于递归函数。Object.constructor:构造器属性,指向构造函数Object.getPropertyOf:获取原型对象,相当于(.__proto__)Object.create:创建对象并设置原型对象Object.getOwnPropertyDescriptor:获取实例属性的描述信息configurable:是否可配置(是否可删除,是否可修改该属性)enumerable:是否可枚举(可用for..in遍历)value:值writable:是否可重写(修改)
Object.defineProperty:设置属性的描述信息- 修改已经存在的属性,默认为
true - 添加新的属性,默认是
false - 参数:第一个参数为需要配置的对象,第二个参数为该对象需要配置的属性,第三个对象为该属性的描述对象
- 修改已经存在的属性,默认为
Object.getOwnPropertyName:获取对象所有实例属性的名字,不包括原型属性。返回一个数组Object.keys:获取所有对象属性名,不包括原型属性和不可枚举属性关于
Object.getOwnPropertyName与Object.keys的差别12345678> var obj = {name : '名字', age : 20};> Object.prototype.des = 'des';> //设置name属性不可枚举> Object.defineProperty(obj, 'name', {enumerable : false});> //结果都不包含原型属性> console.log(Object.getOwnPropertyName(obj)); //[name, age]> console.log(Object.keys(obj)); //[age]>Object.prevenExtensions:禁止扩展属性(不可以添加属性,可删可改)。可通过Object.isExtensible查询。Object.seal:密封属性(禁止扩展和删除,禁止修改configurable和enumerable。可以修改属性的值)。可通过Object.isSealed查询。Object.freeze:冻结属性(不可增删改)。可通过Object.isFrozen查询。