Funktionen haben einen Scope und nur wenn du sie mit "new" versiehst, kriegst Du eine Objekt.
Erhalte ich mitreturn { foo: "bar" };
etwa kein Objekt?
Nun, wenn du ein Objekt zurück gibst, natürlich. Das ist aber keine "Eigenschaft" der Funktion. S.a. https://forum.selfhtml.org/?t=217834&m=1497664
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"
\0