1. 如果Object
方法的参数是一个对象,它总是返回该对象,即不用转换
var arr = []
var obj = Object(arr)
console.log(arr === obj) //true
var value = {
};
var obj = Object(value) // 返回原对象
obj === value // true
var fn = function () {
};
var obj = Object(fn); // 返回原函数
obj === fn // true
2. 如果Object
方法的参数是一个原始值,它总是返回该值对应的包装对象
3. Object
的静态方法:部署在Object
对象自身的方法
4. Object.keys(obj)
返回一个数组,包含该对象自身的(不包含继承的)所有属性名,包含可枚举的属性名
5.Object.getOwnPropertyNames(obj)
,返回一个数组,包含该对象自身的所有属性名,还返回不可枚举的属性
6. Object.prototype.hasOwnProperty()
,接受一个字符串作为参数,返回一个布尔值,表示该实例对象自身是否具有该属性
7. Object.getOwnPropertyDescriptor(obj, prop)
作用:返回指定对象上一个自有属性对应的属性描述符
参数:
obj
:需要查找的目标对象prop
:目标对象内属性名称
返回值:如果指定的属性存在于对象上,则返回其属性描述符对象(property descriptor),否则返回undefined
注意:在ES5中如果该方法第一个参数不是对象(而是原始类型),那么会报错(TypeError
)。而在ES6中,如果第一个参数不是对象的话,则会被强制转换为对象。
8. Object.getOwnPropertyNames()
作用:返回一个数组,包含指定对象的所有自身属性的属性名(包括不可枚举属性但不包括Symbol
值作为名称的属性)
参数:obj
:一个对象
9. Object.defineProperty()
该方法允许通过属性描述对象,定义或修改一个属性,返回修改后的对象。
语法:Object.defineProperty(obj, prop, descriptor)
参数:
obj
:要定义属性的对象prop
:要定义或修改的属性的名称或Symbol
descriptor
:要定义或修改的属性描述符