this.call() ==> this wird noch ein zweites Mal aufgerufen

Thomas D

Erfahrenes Mitglied
Hallo!

Ich habe folgenden JavaScript-Code (vereinfacht dargestellt):

Code:
function sendAjax (returnFunction)
{
	if (http.readyState == 4)
	{
		this.call (returnFunction, http.responseText); //ruft die gewünschte Funktion auf
	}
}

Dieser Code funktioniert auch wunderbar in Firefox 2, allerdings wird durch this.call() unter Opera die Methode sendAjax() noch ein zweites Mal aufgerufen. Daher meine Frage, wie ich unter JavaScript dynamisch eine Methode aufrufen kann, ohne dass dieselbe Funktion (this) noch einmal selbst aufgerufen wird.

BTW: Dasselbe Probleme wie Opera hat übrigens auch der Firefox 3, was dazu führt, dass mein Script in diesen beiden Browsern (mit dem IE noch nicht getestet) nicht funktioniert :( ...
 
Meinst du so: (vereinfacht :))?
Code:
function objekt (returnFunction)
{
  if (1)
  {
    eval('this.'+returnFunction+'("moin moin");');
  }
}

objekt.prototype.testen=function(arg)
{
  alert(arg);
}


new objekt('testen');
 
Hi,

falls du eval umgehen möchtest, sollte das auch mit call zu lösen sein.

Mit Svens Beispiel:
Code:
function objekt (returnFunction){
  if (1){
    this[returnFunction].call(this, "nabend nabend");
  }
}

objekt.prototype.testen=function(strMsg){
  alert(strMsg);
}

new objekt('testen');
Ciao
Quaese
 

Neue Beiträge

Zurück