Я не совсем понимаю как правильно говорить. Например, в первом случае вызов метода value() на функции-конструкторе или на встроенном объекте
Object?
let obj = { num1: 1, num2: 2, num3: 3 };
let values = Object.values(obj); //на чем происходит вызов?
Здесь вызов происходит на самом массиве?
let arr = [1, 2, 3, 4];
let iteratorValues = arr.values(); //?
А в чем вообще разница между 1-ым и 2-ым? Насколько я знаю, прототип, который есть у встроенной функции-конструктора - т.е. встроенный прототип, есть и у обычного объекта, который был создан этой функцией-конструкцией. Ну то есть если какой-то прототип есть у
Object (встроенная функция-конструктор), то впоследствии этот прототип также будет и у того объекта, который этой функцией Object создается. То есть я имею в виду почему я не могу вызвать напрямую
obj.values()? Ведь по идее, если этот метод есть у
Object, то он должен быть и у
obj.
Или
values() находится не в прототипах, а в самом объекте
Object?