当前位置:  开发笔记 > 编程语言 > 正文

什么"......"在Javascript(ES6)中意味着什么?

如何解决《什么""在Javascript(ES6)中意味着什么?》经验,为你挑选了1个好方法。

我正在学习Redux,React和ES6.我已经用JS开发了,但是这个ES6的新世界让我很惊讶,有许多新的东西,比如"=>"来声明箭头函数和其他.然而,在这个新的Redux研究中,我...在我的代码中间面对.

贝娄我有一个例子:

import { combineReducers, createStore } from 'redux'

const userReducer = (state={}, action) => {
    switch(action.type) {
        case 'CHANGE_NAME':
            state = {...state, name: action.payload};
            break;
        case 'CHANGE_AGE':
            state = {...state, age: action.payload};
            break;
    }
    return state;
};

const tweetsReducer = (state=[], action) => {
    return state;
};

const reducers = combineReducers ({
    user: userReducer,
    tweetsReducer: tweetsReducer,
});


const store = createStore(reducers);

store.subscribe(() =>
    console.log('The chage was: ', store.getState())
);

store.dispatch({type: 'CHANGE_NAME', payload: 'Will'})
store.dispatch({type: 'CHANGE_AGE', payload: 21});

如果我替换
state = {...state, name: action.payload};
state = {...state, age: action.payload};
使用 它
state.name = action.payload; 并且
state.age = action.payload;
它起作用,但是年龄被一起插入对象名称,并且在第一种情况下插入名称并且插入年龄之后.

为什么会这样?我如何...在未来的代码中使用?它与国家有关吗?



1> slezica..:

那叫做传播算子.

它将值从对象或数组解包到另一个对象或数组中.例如,使用数组:

a1  = [1, 2, 3]
a2  = [4, 5, 6]
a12 = [...a1, ...a2] // [1, 2, 3, 4, 5, 6]

相同的语义适用于对象:

o1  = { foo: 'bar' }
o2  = { bar: 'baz' }
o12 = { ...o1, ...o2 } // { foo: 'bar', bar: 'baz' }

您可以使用它来浅层复制对象和数组:

a = [1, 2, 3]
aCopy = [...a] // [1, 2, 3], on a new array

o = { foo: 'bar' }
oCopy = { ...o } // { foo: 'bar' }, on a new object

查看Mozilla文档,这是javascript所有内容的绝佳来源.


[`......`不是运营商](/sf/ask/17360801/ 37152508#37152508).
推荐阅读
php
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有