Hallo,
Alles ist eine Instanz von Object. Object ist der oberste Konstruktor aller JavaScript-Objekte (und dessen Prototyp der Prototyp aller Objekte).
Ah ja, danke. Jetzt ist es noch klarer.
Was die Unterscheidung von typeof angeht, so wird zwischen Objekten unterschieden, die die interne Methode [[Call]] kennen oder nicht, und das trifft auf Funktionsobjekte zu. (typeof gibt die internen Typen nicht ohne Nivellierung wieder und ist ist bloß zur Unterscheidung von Primitives und Objects interessant.)
Die Call-Methode macht also den Unterschied, das leuchtet ein.
Gruß, Don P