为什么 JavaScript 对象的引用有效,但值无效?

Why does a JavaScript object's reference works but not the value?

提问人:Giridharan Selvaraju 提问时间:10/16/2023 最后编辑:Giridharan Selvaraju 更新时间:10/16/2023 访问量:71

问:

我正在按照教程在 JavaScript 中构建链表,下面是一个示例代码片段。这确实成功地创建了一个链表,但我很难理解“测试”函数在这里是如何工作的。

我想了解以下内容

  1. 仅当 newNode 变量(JS 指针)分配给 'tail.next' 和 'tail' 时,这才有效。我尝试将newNode对象的实际值分配给“tail”和“tail.next”,但它不起作用。
  2. 'tail = newNode' -> 似乎尾部被覆盖了,并且头部和尾部之间的连接已被断开。然而,这在某种程度上起作用。

我知道这与指针或按引用传递有关。有人可以解释一下到底发生了什么吗?

let head = {
  value: 1,
  next: null
}

let tail = head;

const test = (num) => {
  let newNode = {
    value: num,
    next: null
  }

  tail.next = newNode;
  tail = newNode;
}

test(3);
console.log(head,tail)
test(6);
console.log(head,tail)

JavaScript 指针 链接列表 javascript 对象 按引用传递

评论


答: 暂无答案