redux入门 互动版

Object.assign()函数

本小节将介绍assign()函数的使用

1、assign()函数介绍

Object.assign(target,...soure)函数可以将所有的源对象属性复制到目标对象并返回。

2、使用方式一

我已经将结果以注释的方式给出,我们可以发现,o1对象获取到了o1、o2、o3属性,并且返回obj1

var o1 = {a:1};
var o2 = {b:2};
var o3 = {c:3};
var obj1 = Object.assign(o1,o2,o3);

console.log(o1); //{a: 1, b: 2, c: 3}

console.log(obj1);// {a: 1, b: 2, c: 3}

3、使用方式二

var o4 = {a:1,b:2};
var o5 = {b:3,c:4};
var obj2 = Object.assign({},o4,o5);

console.log(obj2);//{a: 1, b: 3, c: 4}

4、我们要怎么用assign?

我们必须保证reducer是一个纯函数,我们不能改变传入的state,所以在此我们需要使用Object.assign({},state,...)复制一个state

var state = {filter:'SHOW_ALL',todos:['x1','x2']};
var obj3 = Object.assign({},state,{todos:[state.todos[1],'x3']});
console.log(obj3);

点我可以看到更多关于Object方法

练习使用assgin函数,打开控制台看一看obj3打印出来是什么呢?