JavaScript — это объектно-ориентированный язык: это означает, что большинство вещей в JavaScript — это объекты. Единственными элементами, которые не являются объектами, являются примитивные типы данных:строка, число, логическое значение, null и undefined. Эти примитивные типы данных также являются неизменяемыми, что означает, что после создания их нельзя изменить.

Объекты передаются по ссылке. Объекты (функция, массив, карта и т. д.)

Вызов по значению: (Что-то не так!)

if (!this.symbolToConditionToPricesTree[data.symbol]) {
   this.symbolToConditionToPricesTree[data.symbol] = {}
}
let tree = this.symbolToConditionToPricesTree[data.symbol][data.condition]
if (!tree) {
   tree = new AVLTree()
}
tree.insert(data.amount, data.uid)
Error: 
this.symbolToConditionToPricesTree[data.symbol][data.condition] always keep undefined.

Звонить по ссылке:

if (!this.symbolToConditionToPricesTree[data.symbol]) {
   this.symbolToConditionToPricesTree[data.symbol] = {}
}
let tree = this.symbolToConditionToPricesTree[data.symbol][data.condition]
if (!tree) {
   tree = new AVLTree()
   this.symbolToConditionToPricesTree[data.symbol][data.condition] 
   = tree
}
tree.insert(data.amount, data.uid)

Будьте осторожны, когда вам нужно изменить переменную.

Ссылка:



Понятие «По значению и По ссылке в JavaScript
И узнайте, почему так важно знать разницуhackernoon.com»