由于某些未知的原因,我无法让对象散布在代码中。我不得不依靠'Object.assign()',但宁愿使用'...'
以下作品:
const frederick = {
name: 'Frederick Douglass',
canRead: false,
canWrite: false
};
// create new object and mutate that one
const selfEducate = person =>
Object.assign({}, person,
{canRead:true},
{canWrite:true}
);
console.log(selfEducate(frederick)); // { name: 'Frederick Douglass', canRead: true, canWrite: true }
console.log(frederick); // { name: 'Frederick Douglass', canRead: false, canWrite: false }
但是,以下内容不是:
const frederick = {
name: 'Frederick Douglass',
canRead: false,
canWrite: false
};
const selfEducate = person =>
({
...person,
canRead: true,
canWrite: true
});
console.log(selfEducate(frederick));
console.log(frederick);
那是错误的:
SyntaxError: Unexpected token ...
散布运算符确实可以在涉及复制数组的其他代码中工作,但在此示例中不行。对于任何反馈,我们都表示感谢。
最佳答案
如果您的其他代码部分正在与数组的散布运算符一起使用,则与尝试散布对象文字不同。
对于该规范,有一些建议,例如here。
关于javascript - JavaScript ES6中的纯函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43928285/