nsjsdotnet 映射全局对象

本文探讨了nsjsdotnet框架中如何处理全局变量,特别是如何通过将虚拟机的Global实例附加到Global实例的属性上来模拟类似浏览器环境中window变量的行为。

    众所皆知,在 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!');
            ");
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值