kleine AnfängerFrage... Ojektorientierung...

NetBull

Erfahrenes Mitglied
Hi,

wahrscheinlich liege ich komplett falsch...

Also ich würde komplexe Strukturen gerne zu Objekten machen, ... als C#ler verstehe ich alles das JavaScript statt Klassen und Methoden eher eine Funktionsverschachtelung nutzt...

Code:
test = new treeViewNodeObject();
	test.drawItem();
	
	function treeViewNodeObject(aLongKey, aParent)
	{		
		this.id = aLongKey;			// key in database
		this.parent = aParent;		// parent where this node is child of
		
		this.onClick = function onClickEvent()
		{
			alert(this.parent);
		}
		
		this.drawItem = function()
		{
			
		}
	}

schlagt mich wenn ich hier falsch liege.
Wenn ich nun möchte das mein alert(this.parent); funktioniert, wie muss ich die parent-Variable die in der Klasse (aussere Funktion****?) definiert wurde herrichten damit die in der Methode (innere Funktion) bekannt wird?

Wo ich gerade bei bin. Private, Protected, etc kennt JavaScript nicht?

Danke Euch für Eure Hilfe...
cu s00n!
 
Die Variable ist dort bekannt, dein Code ist richtig, aber

1. Du rufst "drawItem" und nicht "onClick" auf (wo dein alert steht)
2. Übergibst du kein "aParent", weshalb dein this.parent undefined ist

Javascript:
function treeViewNodeObject(aLongKey, aParent)
{
	this.id = aLongKey;
	this.parent = aParent;

	this.onClick = function onClickEvent()
	{
		alert(this.parent);
	}

	this.drawItem = function()
	{
		alert(this.parent);
	}
}

var test = new treeViewNodeObject("foo", "bar");
test.drawItem();
 
Hi

es heisst: this.parent = aParent;
und somit wird die Übergabe einem lokalen Member zugewiesen....
Nun möchte ich diesen in einer internen Funktion (Methode?) verwenden.
Oder geht so was in JavaScript nicht?

cu s00n
deAndro
 
Ich verstehe dich nicht. Dein Code macht genau das und er funktioniert. Ich bekomme bei dem von mir geposteten Code "bar" ausgegeben.
 
Zurück