0

假设我有一个看起来像这样的对象

const props = {
    delete: function() {
        // stuffs
    },
    hello: 'hello',
    other: 'other', 
}

现在说我使用传播运算符并做这样的事情

const {hello, ...otherStuffs} = props;

然后对于其他东西,我仍然得到一个对象,它是一个副本,props但键除外hello

但是如果我不想要delete对象的键怎么办?我不能像上面那样做,因为显然delete是保留关键字。

const {delete, ...otherStuffs} = props; // error here

但是,我仍然可以从对象中过滤不等于“删除”的键并获取我的对象,但是有没有办法使用扩展运算符来做到这一点?

4

1 回答 1

3

您可以通过别名的delete属性来做到这一点props。你可以试试这个

const props = {
    delete: function() {
        console.log("delete");
    },
    hello: 'hello',
    other: 'other', 
}

const {"delete": del, ...otherStuffs} = props;
del();

参考:无效的 JavaScript 标识符作为属性名称

于 2017-07-04T10:11:00.377 回答