{ const response = await fetch(someUrl-6ren">
gpt4 book ai didi

javascript - 用于将某物分配为对象属性的函数?

转载 作者:行者123 更新时间:2023-11-30 14:34:20 28 4
gpt4 key购买 nike

最近遇到这段代码:

const fetchMock = async (name, type="success") => {
const response = await fetch(someUrl);
let mock = await response.json();
mock = mock[type];
mock.json = () => mock.data;
return mock;
}

我无法理解为什么在第 5 行,我们使用 functionmock.data 分配给 mock.json。我们不能简单地写 mock.json = mock.data 吗?有什么不同?

P. S. 我不知道它正在接收的数据类型。

最佳答案

您的问题与异步 JSON 获取无关。最后,mock 只是一个具有 data 属性的对象。它还需要一个生成 data 属性的 json 属性。

因此简化的代码示例如下所示:

const mock = {
data: {
"someKey": "someValue"
}
};

mock.json = () => mock.data;

假设 mock.json 只设置了一次,并且 mock.data 发生了变异或更新。然后,mock.json = mock.data 只有在 mock.dataan object that stays the same reference 时才能正常工作。 .

const mock = {
data: {
"someKey": "someValue"
}
};

mock.json = mock.data;
console.log(mock.json); // { "someKey": "someValue" }, as expected
// …
mock.data.someKey = "someOtherValue"
console.log(mock.json); // { "someKey": "someOtherValue" }, as expected

// Either of these reassignments will break up the connection between `mock.json` and `mock.data`:
mock.data = {"newKey": "something"};
mock.data = "Something else";

console.log(mock.json); // { "someKey": "someOtherValue" }, no longer updated

不过,这对 mock.json = () => mock.data 无关紧要,因为该函数只返回 mock 的当前值.数据

关于javascript - 用于将某物分配为对象属性的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50654125/

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