Object.defineProperty() is a static method defined on Object. MDN states that

Object.defineProperty() defines a new property directly on an object, or modifies an existing property on an object…

When I first came across this method, I wondered if defining a property with Object.defineProperty() was ultimately the same as defining an object property via assignment like so:

let book = {};
book.title = 'Little Women';
// prints { title: 'Little Women' }