整理来自 mdn
属性
- Object.prototype
所有Object对象都可以通过原型链看到原型对象的变化,除非受原型链影响的属性和方法在原型链中被进一步覆盖.
- Object.prototype.constructor
特定的函数,用于创建一个对象的原型。构造函数
- Object.prototype.proto
指向当对象被实例化的时候,用作原型的对象。
Object.prototype.noSuchMethod
当未定义的对象成员被调用作方法的时候,允许定义并执行的函数。
方法
- Object.assign()
将所有可枚举属性的值从一个或多个源对象复制到目标对象.返回目标对象.
- Object.create()
使用指定的原型对象及其属性去创建一个新的对象
- Object.defineProperties(obj,props)
在一个对象上定义新的属性或修改现有属性,并返回该对象.
- Object.defineProperty(obj,prop,descriptor)
在一个对象上定义一个新属性,或者修改一个对象的现有属性,并返回这个对象.
- Object.entries(obj)
对象转多维数组
const obj = { foo: 'bar', baz: 42 };
console.log(Object.entries(obj)); // [ ['foo', 'bar'], ['baz', 42] ]
- Object.freeze()
冻结对象,冻结后,对象属性不可更改,数值属性不可更改.
- Object.getOwnPropertyDescriptor(obj,prop)
返回对象内,某属性的描述
- Object.getOwnPropertyDescriptors(obj)
返回对象属性的描述,没有就空
- Object.getOwnPropertyNames(obj)
返回数组或对象的key,数组返回 [0,1,2,length],对象返回key的数组
- Object.getOwnPropertySymbols(obj)
返回 symbol属性的对象.
- Object.getPrototypeOf()
返回原型的对象,没有继承属性,返回null
- Object.is(value1,value2)
判断两个参数是否相等,特别的
Object.is('obj','obj'); //true
Object.is(window,window); //true
Object.is('obj','foo'); //false
Object.is([],[]); //false
Object.is(null,null); //true
Object.is(0,-0); //false
Object.is(-0,-0); //true
Object.is(NaN,0/0); //true
- Object.isExtensible()
判断一个对象是否可扩展,添加新的属性, 以下会让对象变得不可扩展
Object.preventExtensions(obj) ; // 不可扩展
Object.freeze(obj); // 冻结对象
- Object.isFrozen()
判断一个对象是否 Frozen
冻结的,指密封的,但是可写的,或者不可扩展的也是冻结的
- Object.isSealed()
判断一个对象是否是 sealed
密封的, 特指不能扩展不能配置的对象,一般的对象都是可以扩展的,如果想不能扩展,做处理
var obj = {a:12,b:34};
Objec.preventExtensions(obj); // obj不能扩展
Object.defineProperty(obj,'a',{configurable:false}); //属性a 不能配置
Object.defineProperty(obj,'b',{configurable:false}); //属性b 不能配置,都需要设置
Object.seal(obj); // 把obj生成密封对象
- Object.keys()
将对象的键值放到数组内,带排序.
- Object.values()
将对象的值放到数组内,带排序
- Object.preventExtensions()
让一个对象变的不可扩展,也就是永远不能再添加新的属性。
- Object.prototype.hasOwnProperty()
返回一个布尔值,指示对象自身属性中是否具有指定的属性
- Object.prototype.isPrototypeOf()
测试一个对象是否存在于另一个对象的原型链上。
- Object.prototype.propertyIsEnumerable()
返回一个布尔值,表示指定的属性是否可枚举。
- Object.prototype.toLocaleString()
返回一个该对象的字符串表示。此方法被用于派生对象为了特定语言环境的目的(locale-specific purposes)而重载使用。
- Object.prototype.toString()
返回一个表示该对象的字符串。
- Object.prototype.valueOf()
返回指定对象的原始值。
- Object.seal()
让一个对象密封,并返回被密封后的对象。密封对象将会阻止向对象添加新的属性,并且会将所有已有属性的可配置性(configurable)置为不可配置(false),即不可修改属性的描述或删除属性。但是可写性描述(writable)为可写(true)的属性的值仍然可以被修改。
- Object.setPrototypeOf()
设置一个指定的对象的原型 ( 即, 内部[[Prototype]]属性)到另一个对象或 null。