Kurtz gegrüßt
Aha! das dürfte erklären wieso es dort eine extra Hashklasse geben muss.
Was hat das miteinander zu tun?
Ächz, hab mir jetzt die Mühe gemacht genauer bei prototype.js nachzugucken um diesen Dialog nachzuvollziehen.
Also würde prototype.js wie du schriebst die
Methode der Konstruktorfunktion window.Object
sowie
function Object() {}
verändern, also sowas
function Object() {
this.beget=function(){}
}
dann würde a={} und b=a.beget() möglich sein, und man bräuchte folglich einen Ersatz für Hashes.
Prototype.js hingegen erweitert nicht die Object()-Funktion sondern das assoziierte Object()-Objekt um es als "Namespace" zu nutzen.
Object.beget=function(){}
was aber im Zusammenhang mit vererbten Methoden nicht wirklich hilft
a={} hätte keine Methode beget, und man müsste b=Object.beget(a) schreiben, was keinen wirklichen OOP Mehrwert hätte außer nem aufgeräumten Namespace.
Grüße
Kurt