знач так. у массивов в js есть много полезных функций, которые вызываются на самих массивах типа someArray.forEach, 
someArray.map итд. у строк например тоже так же myStrimg.includes и все такое
у объектов же нотация через точку идентична получению ключа, то есть myObject.something === myObject['something']
поэтому когда возникла необходимость добавить полезных функций в объект, пришлось делать их статическим, например Object.keys(myObject)
это ведёт к тому, что родными методами js очень неудобно чейнить преобразования данных, если в деле участвуют объекты
Object.fromEntries(
  Object.entries(myObject)
    .map(([key, value]) => [key, value.toLowerCase()])
  )
)
это вот аналог obj.transform_values(&:downcase) в руби
но самое ужасное, что если написать в js свой transformValues, вызывать его придется как Object.transformValues(myObj)
можно конечно упороться по FP и использовать функциональные  библиотеки, полностью отказавшись от стандартной библиотеки даже для массивов
compose(
  filter((v) => v > 0),
  map((v) => v + 2),
  [-5, -4, -3, -2, -1,  0]
) // на выходе получаем [1, 2]
и это будет работать одинаково круто для массивов, объектов и всего остального, но это не для всех
а вот если бы изначально не закладывались на то что можно ключи через точку брать - было бы все гораздо проще