我想知道我是否可以做到这一点:
const {todos} = props.todos;
this.todos = todos;
在一行中。
最佳答案
是的,你可以使用这样的东西(如果你真的喜欢解构):
let todos = (({ todos } = props.todos), this.todos = todos);
(请注意,我们需要使用 let
而不是 const
,因为我们在赋值表达式内重新绑定(bind) todos)
我会推荐使用这个吗,不。与您的示例相比,这使得代码更难以阅读。它还使用 comma expression这不太为人所知。这段代码使用两行而不是一行并没有什么坏处。 ES6 解构的强大之处不在于减少 JavaScript 的 LOC,而是使其更易于理解。以默认值为例:
let { todos = [] } = props;
这比
更具可读性let todos = props.todos;
todos = todos ? todos : [];
最后,这也可以正常工作:
this.todos = props.todos.todos;
关于javascript - es6 中从对象中提取属性的简写是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37480642/