hash()
Функция hash() является важной частью того, как Immutable определяет, являются ли две значения эквивалентными, и используется для определения, как хранить эти значения. Принимая любое значение, hash() вернёт 31-битовое целое число.
hash(value: unknown): number
Обсуждение
При разработке объектов, которые могут быть равными, важно, чтобы при вызове метода .equals() возвращался true, оба значения метода .hashCode() возвращали одинаковое значение. hash() может использоваться для создания этих значений.
Для не-Immutable объектов, которые не предоставляют функции .hashCode() (включая обычные объекты, обычные массивы, объекты Date и т.д.), для каждого экземпляра будет создаваться уникальное значение хэша. То есть, создаваемый хэш отражает ссылочную эквивалентность, а не эквивалентность значений для объектов. Это гарантирует, что если объект со временем изменяется, его код хэша останется неизменным, позволяя объектам использоваться в качестве ключей и значений в коллекциях Immutable.js.
Обратите внимание, что hash() стремится сбалансировать скорость и избегать коллизий, но не пытается создавать защищённые хэши.
Новое в версии 4.0
© 2014–present, Lee Byron and other contributors
Licensed under the 3-clause BSD License.
https://immutable-js.com/docs/v4.2.1/hash()/