Javascript 用于将某物指定为对象的函数';谁的财产?

Javascript 用于将某物指定为对象的函数';谁的财产?,javascript,async-await,Javascript,Async Await,最近遇到了这段代码: const fetchMock=async(name,type=“success”)=>{ const response=wait fetch(someUrl); 让mock=wait response.json(); mock=mock[type]; mock.json=()=>mock.data; 返回模拟; }您的问题与异步JSON获取内容无关。最后,mock只是一个具有data属性的对象。它还需要一个生成data属性的json属性 因此,简化的代码示例如下所示:

最近遇到了这段代码:

const fetchMock=async(name,type=“success”)=>{
const response=wait fetch(someUrl);
让mock=wait response.json();
mock=mock[type];
mock.json=()=>mock.data;
返回模拟;

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

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

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

mock.json = () => mock.data;
假设
mock.json
只设置了一次,并且
mock.data
发生了变化或更新。然后,
mock.json=mock.data
只有在启用了
mock.data
时才能正常工作


这对于
mock.json=()=>mock.data
来说并不重要,因为函数只返回
mock.data

的当前值,这可能是因为库或代码的另一部分希望
mock
具有名为
json
的函数,所以它们可以将其作为函数调用谢谢!这似乎是正确的。我想我必须正确理解传递值和引用是如何工作的。由于JS是我所知道的唯一语言,当人们试图通过与其他语言的比较来解释JS时,很难理解,所以链接对我帮助不大。但我明白了。
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