Это делается так, чтобы избежать столкновений - помните, каждый метод на Object.prototype
также является методом в каждом отдельном определяемом пользователем объекте.
Представьте объект, в котором вы хотите использовать собственный метод defineProperty
- это полностью сломает вещи, когда Object.defineProperty
был на своем прототипе.