Hi,
Ja, in diesem Fall kannst du "this" in methode1 nicht wie gewünscht verwenden. Das ist aber auch nicht nötig. Da du nur ein einziges solches Objekt hast und auch weißt, wie es heißt, kannst du den Namen direkt notieren:
var myObj = {
methode1: function()
{
myObj.methode2();
},
methode2: function()
{
}
};
Ganz so einfach ist es leider nicht. Ich habe schon eine Klasse, und die Methoden stecken im prototype. Habe es hier der Einfachheithalber nur weggelassen.
> > Oder gibts Möglichkeit das Original Objekt, zu dem eine Methode gehört, herauszufinden?
>
> Nicht direkt. Wie LanX bereits schrieb, geht das aber z.B. über eine Variable, die beim Initialisieren des Objekts gesetzt wird, z.B. so:
>
> [code lang=javascript]
> var myObj = {
>
> init: function ()
> {
> this.methode1.self = this;
> },
>
> methode1: function()
> {
> arguments.callee.self.methode2(); // arguments.callee ist methode1
> },
> methode2: function()
> {
> }
> };
Hm, sehr unschön. Wir arbeiten in einem größeren Team, und es ist nicht möglich, so was durchzusetzen. Außerdem müsste man jede Methode damit ausstatten, und sowas hat man ja schnell mal übersehen.
Gruß!