molily: Funktion erstellt eine lokale var statt in globaler zu speichern

Beitrag lesen

Hallo,

Das ganze wird dann über Json in C# verwendet.
Irgendein Noesis.Javascript ist in dem C#-Code eingebunden.
Ich habe mal gegoogled. Noesis.Javascript ist ein .Net Javainterpreter.

Das ist eine entscheidende Information…

erhalte ich in C# eine exception:
Reference Error: window is not defined

window gibt es nur in JavaScript-Implementierungen im Browser, nicht in allen ECMAScript-Umgebungen.

window verweist auf das sogenannte globale Objekt. Das gibt es in allen ECMAScript-Umgebungen, es hat aber einen anderen Namen (oder keinen). Welchen es in Noesis.JavaScript hat, weiß ich nicht, es gibt aber einen Hinweis in der Dokumentation.

Wie bereits gesagt, wenn du kein »var« verwendest, sollten alle Variablen global sein und damit Eigenschaften des globalen Objekts. Wenn das nicht funktioniert, könntest du versuchen, »this« zu verwenden. Das zeigt, wenn die Funktion nicht im Kontext eines anderen Objekts aufgerufen wird, auf das globale Objekt.

this.foo = 123;  
function show () {  
  this.foo = 345;  
}

Mathias