Javascript Aufruf einer Funktion Klasse
Ich versuche zu nennen, eine Klasse Funktion:
//Gantt chart object
function ganttChart(gContainerID) {
this.isDebugMode = true; //Is this chart in debug mode
this.gContainer = document.getElementById(gContainerID); //The container the chart is built inside
this.gDebugPannel; //Debug pannel
//Create debug pannel
if (this.isDebugMode) {
this.gContainer.innerHTML += "<div id=\"gDebug" + gContainerID + "\" class=\"gDebug\">cometishian</div>";
this.gDebugPannel = document.getElementById("gDebug" + gContainerID);
}
gDebug("lmfao!");
//Updates debug information
function gDebug(debugMessage) {
alert(this.gDebugPannel.innerHTML);
if (this.isDebugMode) { this.gDebugPannel.innerHTML = debugMessage; }
}
}
Ich erwarte, dass es zu alert "cometishian" aber this.gDebugPannel.innerHTML
null ist, irgendwelche Ideen?
Bei der weiteren Untersuchung dieser.gDebugPannel ist nicht definiert.
Update:
//Gantt chart object
function ganttChart(gContainerID) {
this.isDebugMode = true; //Is this chart in debug mode
this.gContainer = document.getElementById(gContainerID); //The container the chart is built inside
this.gDebugPannel; //Debug pannel
this.gPosX;
this.gPosY;
//Create debug pannel
if (this.isDebugMode) {
this.gContainer.innerHTML += "<div id=\"gDebug" + gContainerID + "\" class=\"gDebug\">5,5 | 5.1</div>";
this.gDebugPannel = document.getElementById("gDebug" + gContainerID);
}
//Updates debug information
ganttChart.gDebug = function(debugMessage) {
if (this.isDebugMode) { this.gDebugPannel.innerHTML = debugMessage; }
}
this.gDebug("wo");
}
der Linie dieses.gDebug("wo") wirft:
Fehler auf der Webseite details
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; InfoPath.1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 1.1.4322; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; OfficeLiveConnector.1.4; OfficeLivePatch.1.3)
Zeitstempel: Thu, 25 Nov 2010 12:57:51 UTC
Message: Object doesn't support this property or method
Line: 21
Char: 5
Code: 0
URI: http://server1/bb/ganttnew/gMain.js
- Die Aussage
this.gDebugPannel;
nichts. - panel 1
n
btw...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie rufen Sie die Funktion auf der
this
Beispiel, wie diese:Den richtigen Weg, dies zu tun ist, um die Funktion in der Klasse Prototyp: (Dies sollte getan werden, nach der Deklaration der Konstruktor-Funktion)
call
Methode nimmt den Kontext (this
), gefolgt von den Parametern an die Funktion zu übergebende. developer.mozilla.org/en/JavaScript/Reference/Global_Objects/...kann man es auch als