【js重学系列】对象常用方法
谈谈对面向对象的理解
-
继承:
-
原型链继承、call 继承、寄生组合继承、es6 的继承
-
-
封装:高内聚、低耦合
- 封装:将常用的功能封装成一个函数,方便下次使用。
-
多态:重载、重写
- 重载:其他语言的重载是方法名相同、形参的个数或类型不同。主要是为了减轻业务逻辑的复杂性,减少并发。js 的重载是用相同的函数名,根据参数的不用来实现不同的效果。
- 重写:在类的继承中,子类可以重写父类的方法
判断是否为空对象
Object.assign()
-
方法用于将所有可枚举属性的值从一个或多个源对象分配到目标对象。它将返回目标对象。
-
const target = { a: 1, b: 2 }; const source = { b: 4, c: 5 }; const returnedTarget = Object.assign(target, source); console.log(target); // expected output: Object { a: 1, b: 4, c: 5 } console.log(returnedTarget); // expected output: Object { a: 1, b: 4, c: 5 }
-
Object.assign(target, ...sources)
-
参数
-
target
目标对象。
-
sources
源对象。
返回值
目标对象。
-
Object.create()
-
创建一个新对象,使用现有的对象来提供新创建的对象的__proto__。
-
-
Object.create(proto,[propertiesObject])
-
proto
新创建对象的原型对象。
-
propertiesObject
可选。需要传入一个对象,该对象的属性类型参照
Object.defineProperties()
的第二个参数。如果该参数被指定且不为undefined
,该传入对象的自有可枚举属性(即其自身定义的属性,而不是其原型链上的枚举属性)将为新创建的对象添加指定的属性值和对应的属性描述符。
返回值
一个新对象,带着指定的原型对象和属性。
例外
如果propertiesObject
参数是 null
或非原始包装对象,则抛出一个 TypeError
异常。