gpt4 book ai didi

javascript - 当函数创建并返回对象时会发生什么?

转载 作者:行者123 更新时间:2023-11-30 08:46:57 25 4
gpt4 key购买 nike

我有一个返回对象的函数:

function makeObject() {
return {
property: "value"
};
}

我可以像这样从中创建新对象:

var newObject = makeObject();

我对此有一些疑问:

  1. newObject 是引用函数返回的原始对象,还是一个全新的、具有自己属性的新对象?

  2. 如果它是一个全新的对象,那么从某种意义上说,它是否是函数返回对象的深拷贝

  3. 函数中的原始对象发生了什么?如果无法引用它,它是否会在 JavaScript 运行时保持事件状态?

最佳答案

  1. 是的(每次运行函数时都会创建一个新对象,但是函数会返回对该新对象的引用)。您只能在 JS 变量中存储对对象的引用。
  2. 不是。
  3. 函数内对它的引用消失了。您返回的对它的引用仍然可用,因为您将它分配给了一个变量。由于仍然有对其的可访问引用,因此它继续存在。

garbage collection 上的 MDN 文档是有用的相关阅读。

关于javascript - 当函数创建并返回对象时会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21168230/

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