Когда мы говорим о чистоте в системе, мы говорим о системе, которая не изменяет наблюдаемое состояние.
- В первом сценарии в строке 1
g
есть пустое Map
и последней строкой это не так. Его значение было видоизменено. - Во втором сценарии
startPoints
- это то же самое в первой строке и в конце.
Чтобы сделать это немного проще, позвольте мне объяснить это с функцией. Предположим, у вас есть функция, которая дает массив чисел, умножает ее на 2. Так что если:
var a = [1,2,3];
multiply(a)
// a = [2, 4, 6]
Эта функция не является чистой. Это изменило наблюдаемое состояние системы, которое в этом случае a
. Но если:
var a = [1,2,3];
var b = multiply(a)
// a = [1, 2, 3]
// b = [2, 4, 6]
Эта функция является чистой. a
не изменилось.