Zugriff auf Membervariable

Geflügel

Erfahrenes Mitglied
Hallo, gibt es einen anderes Weg um auf A zuzugreifen ohne var oThis=this; zu verwenden? Wenn ja, wie?

Code:
<script>
<!--
function ClassName()
{
	var A = null;
	
	var oThis = this;
	this.setA = function( val ){ oThis.A = val; alert( oThis.A ); }
	
	this.setA( 'Willkommen!' );
}

var obj = new ClassName();

// -->
</script>

Edit: Warum habe ich so'nen blöden roten Punkt neben meinem Renomee?
 
Code:
function ClassName()
{
	this.A = null;
	this.setA = function( val ){ this.A = val; alert( this.A ); }
	this.setA( 'Willkommen!' );
}

var obj = new ClassName();
 
Soll es vielleicht, aber in der Funktion greifst du überhaupt nicht auf die Membervariable A zu, sondern erstellst eine neue Klassenvariable(sofern man bei JS überhaupt davon sprechen kann) ;)

Zum Überprüfen:
Code:
<script type="text/javascript">
<!--
function ClassName()
{
	var A = 'Membervariable';
	var oThis = this;
	this.setA = function( val )
	  { 
	    oThis.A = val; 
	    alert( 'Vorher:\n'+oThis.A +'\n'+A);
	    A='modifizierte Membervariable';
	    alert( 'Nachher:\n'+oThis.A +'\n'+A);
	  }
	this.setA( 'Klassenvariable' );
}

var obj = new ClassName();

// -->
</script>

...wie du daran erkennst, kannst du auf die Membervariable schlicht mit ihrem Namen zugreifen.

Das Ganze mit oThis kannst du dir somit sparen, denn oThis ist ja identisch mit dem Objekt, auf welches du per this zugreifen kannst.
 
Ich danke dir recht herzlich! :)

Code:
<script type="text/javascript">
<!--
function ClassName()
{
	var A = 'Membervariable';
	alert( 'Vorher: '+this.A );
	this.setA = function( val )
	  { 
	    this.A = val;
	  }
	this.setA( 'Klassenvariable' );
	alert( 'Nachher: '+this.A );
}

var obj = new ClassName();

// -->
</script>
 

Neue Beiträge

Zurück