darktrym hat geschrieben:Funktioniert das auch mit was anderem außer Funktionen und Klassen/Instanzen?
Für mich ist das nicht schlüssig warum eine Funktion ein Objekt sein muss wenn alles andere das nicht ist.
Bei Klassen/Instanzen kann ich der Idee was abgewinnen aber Funktionen?
Dann ist da doch kein Problem, weil Funktionen sind Instanzen der Klasse ``function``. Und dass sie Objekte sind, ist nützlich, damit kannst du mit Funktionen tolle Sachen machen. Sie zum Beispiel als Parameter an andere Funktionen übergeben. Oder sie an Namen binden.
darktrym hat geschrieben:Wenn ADT wie Listen und Wörterbücher Attribute und Methoden besitzen und somit zu Objekten macht, wieso funktioniert das nicht bei denen?
Weil es dort speziell verboten wurde, an diese Attribute hinzuzufügen. Die Idee dahinter war zu verbieten dass irgendwelche Libraries die "Basissprache" soweit verändern, dass ggf andere Libraries dann nicht mehr funktionieren weil etwa jemand bei Listen die ``append``-Methode durch irgendwas anderes ersetzt hat.