javascript修改对象属性的正确姿势

前言

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})

猜你喜欢

转载自blog.csdn.net/harmsworth2016/article/details/86621540