JavaScript - Function als Object mit eigenen Methoden

NetBull

Erfahrenes Mitglied
Hi,

ich habe immer noch ein Problem der Objektorientierung unter JavaScript.
Vielleicht kann mir jemand bei diesem einfachen Beispiel helfen:

Code:
function testX()
{
	console.log("starte");
	mObj.test;
	console.log("ende");
}

Soll einfach das folgende Object aufrufen und die Methode test starten. Macht es aber nicht!
Code:
function mObj()
{
	var test = function()
	{
		console.log("OK");
	}
}

Irgendwie will sich das OOP in JavaScript noch nicht erschliessen.

cu s00n
deAndro
 
Du musst erst ein neues Objekt dazu erstellen. Außerdem ist test eine Methode, dann müssen Klammern hinter den Funktionsnamen:
Javascript:
myObject = new mObj();
myObjet.test();
 
Du solltest am besten nicht die Art wie du deinen Syntax schreibst mitten drin ändern. Zwecks Übersicht würd ich z.B. folgendes vorschlagen:

Javascript:
var mObj = function() 
{
    var test = function()
    {
        console.log("OK");
    }
}


function testX()
{
    console.log("starte");
    mObj.test();
    console.log("ende");
}

Der Fehler lag nicht darin das du kein mObj mit new erstellt hast, sondern in den fehlenden Klammern beim Funktionsaufruf.
Schreibst du mObj.test(); führt er die Funktion aus. Schreibst du mObj.test; holst du dir lediglich deren Referenz die im Nichts verschwindet.

Ich geh mal davon aus, dass du test() absichtlich als statische Funktion angelegt hast...
Mehr Infos hatte ich hier mal zusammen gefasst gehabt.
 
Zuletzt bearbeitet:
Zurück