Насколько я понимаю, свойство прототипа функции - это способ добавления методов / свойств ко всем объектам, созданным из этой функции.
Так что, когда я пытаюсь что-то вроде этого
function Person(){}
Person.prototype.saySomething = function(){ alert( "hi there" ); }
Person.saySomething();
Я получаю сообщение об ошибке «Person.saySomething не является функцией», что имеет смысл, поскольку я не выполняю функцию на экземпляре объекта Person.
Но почему работает запуск приведенного ниже кода?
Function.prototype.sayHi = function(){ alert( "hi!" );}
Function.sayHi();