I'm curious why are there available two ways to do seemingly the same thing. Can't I use always Object.defineProperties()? What can Object.defineProperty() do that can't already be done with Object.defineProperties() when the latter can handle both single and multiple properties?
As you noticed, Object.defineProperty
can't handle multiple properties, it takes the target object, one property name, and one descriptor.
On the other hand, Object.defineProperties
takes the target object, and another object whose every key is a property name and every value is the corresponding descriptor, which allows to define multiple properties at once.
Nothing prevents you from using Object.defineProperties
even for single properties, it's just a bit more work (and maybe less readable code?) because you have to build the object which contains the properties definition.