Javascript 对象没有值的键

Pha*_*tom 6 javascript javascript-objects redux

我正在关注 redux 教程https://redux.js.org/basics/actions并且很难理解以下代码

export function addTodo(text) {
      return { type: ADD_TODO, text }
    }
Run Code Online (Sandbox Code Playgroud)

所以上面的函数返回对象{ type: ADD_TODO, text },有两件事让我感到困惑。

  1. 与 key 关联的该对象的值是多少text。如果这个值是未定义的,那么为什么不直接返回呢{ type: ADD_TODO}

  2. 如果text是字符串,那么不应该是{ type: ADD_TODO, [text]: *some value* }字符串吗?

此外,还有其他功能,例如

function toggleTodo(index) {
      return { type: TOGGLE_TODO, index }
    }
function setVisibilityFilter(filter) {
      return { type: SET_VISIBILITY_FILTER, filter }
    }
Run Code Online (Sandbox Code Playgroud)

有人可以向我解释这个语法吗?

Shi*_*iny 8

他们使用ES6 速记属性名称- 如果预期的键名称与变量相同,那么您可以简单地传递变量

let name = 'Jared';
let age = 19;
let literate = false;

let obj = {
  name,
  age,
  literate
}

/* Is the same as...
let obj = {
  'name': name,
  'age': age,
  'literate': literate
}
*/

console.log(obj);
Run Code Online (Sandbox Code Playgroud)