静态成员:构造函数对象自己的属性和方法
实例成员:直接定义在实例上的属性和方法
原型成员:直接定义在原型对象上的属性和方法
所有对象都是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
查询。