gpt4 book ai didi

覆盖对象解构默认行为的 JavaScript 方法

转载 作者:行者123 更新时间:2023-12-02 07:18:05 29 4
gpt4 key购买 nike

在 JS 中有没有一种方法可以在对象被解构时覆盖对象的默认行为?

// Normally destructing lifts properties from an object
const foo = {
a: 1,
b: 2,
};

const { a, b } = foo; // a = 1, b = 2

// I would like to have a method return the properties to be
// destructured
const bar = {
toObject: () => {
return { a, b };
},
};

const { a, b } = bar; // a = undefiner, b = undefined

我知道我可以简单地使用 const { a, b } = bar.toObject(); 但这需要对象的使用者知道它的内部结构如何工作并且打破了最少的原则惊讶。

我能想到的最接近我想要的是 toJSON魔术方法。

最佳答案

没有。规范requires右侧解析为可以通过 ToObject 转换为对象的值, 如果传递一个对象,它只返回对象本身(即没有调用对象上的特殊方法将其转换为其他对象)。

enter image description here

关于覆盖对象解构默认行为的 JavaScript 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55373916/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com