#
Calling C# from JavaScript
Once your C# code is compiled into JavaScript, you can call it from existing JavaScript code just like any other JavaScript library. h5 generates JavaScript objects and functions that mirror your C# types and members.
#
Calling Static Methods
Static methods are exposed directly on the class constructor.
using System;
using H5;
namespace MyProject
{
public class Utils
{
public static void Log(string message)
{
Console.WriteLine(message);
}
}
}
In JavaScript:
MyProject.Utils.Log("Hello from JavaScript!");
#
Creating Instances
You can create instances of your C# classes using the new keyword.
namespace MyProject
{
public class Person
{
public string Name { get; set; }
public Person(string name)
{
Name = name;
}
public void SayHello()
{
Console.WriteLine("Hello, " + Name);
}
}
}
In JavaScript:
var p = new MyProject.Person("Alice");
p.SayHello(); // Output: Hello, Alice
#
Passing Callbacks
You can pass JavaScript functions as delegates to C# methods.
namespace MyProject
{
public class App
{
public static void Run(Action<string> callback)
{
callback("Success!");
}
}
}
In JavaScript:
MyProject.App.Run(function(message) {
alert(message);
});
#
Considerations
- Namespaces: Ensure you use the fully qualified name of the class (unless you've customized
[Namespace]or output settings). - Types: JavaScript types (number, string, boolean) map directly to C# primitives. Objects map to
objector specific types if structural typing matches. - Overloading: h5 supports method overloading. However, calling overloaded methods from JavaScript can be tricky as JavaScript doesn't support overloads natively. h5 generates dispatch logic based on argument types and counts.