nsjsdotnet 映射全局对象

    众所皆知,在 google-chrome 浏览器中,我们在 JavaScript 的”全局域“定义任何的成员(例:方法、变量)是可以通过”全局域“的”window“变量获取的,而”nsjsdotnet“可能在很多人的眼中,被认为不支持这类型的访问,但事实是”nsjsdotnet“在设计时就认为这是没有必要的。

    你可以把 nsjsdotnet 中每个虚拟机的 Global 实例,附加到 Global 实例的属性上,即可,而它不应是由”nsjsdotnet“框架涉及并且提供支持,而是由应用此框架的开发人员自行制定。

    ”window“是”浏览器内核框架“约定俗成定义的代替源,但这一切都不等于”nsjsdotnet“的框架体系需要遵照这一切,而且它并不符合”nsjsdotnet“框架的定义

namespace TECHMARS.VM
{
    using nsjsdotnet;

    class Program
    {
        public class JavaScriptVirtualMachine : NSJSVirtualMachine
        {
            protected override void InitializationFramework()
            {
                base.InitializationFramework();
                base.Join((sender, e) => 
                {
                    NSJSObject global = base.Global;
                    global.Set("window2", global);
                });
            }
        }

        static void Main(string[] args)
        {
            JavaScriptVirtualMachine nsjs = new JavaScriptVirtualMachine();
            nsjs.Run(@"
                window2.alert('hello nsjsdotnet!');
            ");
        }
    }
}

猜你喜欢

转载自blog.csdn.net/liulilittle/article/details/80800952