修改对象属性
前言
eslint有一条规则no-param-reassign,意思是禁止修改函数的属性。
若函数的属性是对象,此时不能修改对象属性。有什么方法呢?
方法有二种,如下:
var obj = {
a: 1,
b: 2
}
Object.assign()
Object.assing() 方法将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。
function rewrite(...sources){
return Object.assign({}, ...sources)
}
obj = rewrite(obj, {b: 3})
…扩展运算符
…扩展运算符可以将对象打开,合并成一个新对象
function rewrite(origin, source){
return {...origin, ...source}
}
obj = rewrite(obj, {b: 3})