Тут как бы длинный поезд из смайликов и короткая видимая платформа остановки. В середине видны какие-то средние вагоны, а левый край поезда, определяемый переменной position
– где-то далеко слева, его не видно, а значение position
отрицательное. Ноль соответствует точно левому краю, началу видимой «платформы».
Когда жмут prev
– толпа смайликов едет вправо, её position
увеличивается. Но при этом последний вагон не должен уехать правее левого края платформы. Поэтому position
(обычно отрицательный) делается равным наибольшему из двух: 0
или вычисленному значению. Если «уехали», position
получился положительным. И Math.min(0, position)
станет равным 0
.
Та же механика с правым краем и движением «поезда» справа налево. Нельзя, чтобы правый вагон поезда уехал левее правого края платформы. Нельзя, чтобы показались пустые рельсы. Поэтому position
не должен становиться левее == меньше, чем минус-длина поезда плюс длина платформы.