Object 的方法总结
1、Object.create()
Object.create()方法创建一个新对象,使用现有的对象来提供新创建的对象的__proto__。
用法:Object.create( proto, [propertiesObject] )
参数
- proto:新创建对象的原型对象
- propertiesObject可选。如果没有指定为 undefined,则是要添加到新创建对象的可枚举属性(即其自身定义的属性,而不是其原型链上的枚举属性)对象的属性描述符以及相应的属性名称。这些属性对应Object.defineProperties()的第二个参数。
- 返回值:一个新对象,带着指定的原型对象和属性。
Object.create()只能拷贝,但是不能继承原型链方法
2、Object.assign( )
Object.assign ( target, source) 方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。
target :目标对象
source: 源对象
用法:
- 如果只有一个参数,则返回原来的参数
let a = {
name:“hello”
}
Object. assign ( ) // { name: "hello"}
- 如果参数不是对象,则先转成对象,再返回。
typeof Object . assign ( 2) // object
- 如果参数是null 或是 undefined就会报错,因为无法转化为对象
Object.assign( null ) // 控制台报错
【注】
(1)Object.assign方法实行的是浅拷贝,而不是深拷贝
(2)同名属性的替换
(3)Object.assign可以用来处理数组,但是会把数组视为对象
(4)Object.assign只能进行值的复制,如果要复制的值是一个取值函数,那么将求值后再复制。
3、Object.getOwnPropertyDescriptor( )
Object.getOwnPropertyDescriptor() 方法返回指定对象上一个自有属性对应的属性描述符。(自有属性指的是直接赋予该对象的属性,不需要从原型链上进行查找的属性)
用法:
4、Object.getOwnPropertyDescriptors( )
Object.getOwnPropertyDescriptors() 方法用来获取一个对象的所有自身属性的描述符。
用法:
5、Object.getPrototypeOf( )
Object.getPrototypeOf() 方法返回指定对象的原型
用法:
返回的结果如下:
6、Object.setPrototypeOf(obj,prototype )
Object.setPrototypeOf() 方法设置一个指定的对象的原型 ( 即, 内部[[Prototype]]属性)到另一个对象或 null。
obj:要设置其原型的对象。
prototype:该对象的新原型(一个对象 或 null).