Im return-Statement habe ich aber auf die Eigenschaften der Funktion vollen Zugriff.
function iam(nickname) {
this.name = nickname;var dat = this;
return {
ami: function() { console.log(dat.name); }
};
}var who = iam("tami");
who.ami(); // => "tami"
Und wo greifst du hier auf die Eigenschaften einer Funktion zu? Ich sehe es nirgends.
Welcher Funktion überhaupt? Ich sehe da nur zwei Funktionen, iam und eine anonyme, die in einer Eigenschaft ami gespeichert wird. iam rufst du ohne »new« auf, sodass »this« darin auf das globale Objekt window zeigt bzw. undefined im ECMAScript 5 Strict-Mode. Ich vermute, du missverstehst die Funktionsweise von »this«. »this« ist nicht das aktuelle Funktionsobjekt, das wäre [arguments.callee](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions_and_function_scope/arguments/callee) (existiert nur im Nicht-Strict-Mode). Mit obigen Beispiel hast du erfolgreich die Eigenschaft name des globalen Objekts beschrieben, siehe <http://de.selfhtml.org/javascript/objekte/window.htm#name@title=window.name>.
Wie auch immer, ich verstehe ohnehin nicht, worum es in diesem Zweig geht.
Mathias