Связанный список js

class NodeList {
  constructor(value, next = null) {
    this.value = value
    this.next = next
  }
}
class LinkedList {
  constructor() {
    this.head = null
    this.tail = null
    this.size = 0
  }
  addToTail(value) {
    const nodeList = new NodeList(value)
    if(!this.size) {
      this.head = nodeList
      this.tail = nodeList
      this.size++
      return this
    }
    this.tail.next = nodeList
    this.tail = nodeList
    this.size++
    return this
  }

Здравствуйте. Я не понимаю как изменяя значение в this.tail.next, меняется this.head(в конец добавляется элемент)


Ответы (1 шт):

Автор решения: Алексей Шиманский

Всё просто. nodeList - объект. А объекты в языке изменяются по ссылке.

таким образом при наличии тысячи переменных указывающих на один объект, при изменении объекта в одной из них влечёт за собой изменение и в других, т.к. они все ссылаются на одну и ту же область в памяти

→ Ссылка