我应该如何组织代码,以便我可以在 WinJS 应用商店应用的多个页面中查看类的实例

How should I organise code so that I can see instances of a class in multiple pages of a WinJS Store App?

本文关键字:应用 实例 代码 何组织 WinJS 我可以 我应该      更新时间:2023-09-26

(示例取自 http://msdn.microsoft.com/en-us/library/windows/apps/hh967793.aspx)

如果我将机器人类存储在主页上的默认.js文件之后。

// robot.js
(function () {
     var Robot = WinJS.Class.define(function (name) {
            this.name = name;
        },
        { modelName: "" },
        { harmsHumans: false, obeysOrders: true }
    );
    WinJS.Namespace.define("Robotics", {
        Robot: Robot
    });
})();

在第 1.js 页中,我创建了一个机器人实例。

// page1.js
var myRobot = new Robotics.Robot("Sam");
var harm = Robotics.Robot.harmsHumans;

从 page2.js 访问 myRobot 实例的最佳方式是什么?

// page2.js
console.log(myRobot.name);

我查看了 WinJS 命名空间,但我看到的所有示例都显示从同一页面访问实例。

我是否应该将实例存储在某种存储中?

WinJS 命名空间只是将命名空间名称(例如 Robotics)

添加为全局命名空间中的变量,因此您放置在命名空间中的任何内容(例如 Robotics.Robot)都可以从代码中的任何其他位置从该根名称访问。这意味着您只需在 robot.js 中添加另一个成员,如 robotInstance: null 到您的命名空间定义中,然后在 page1.js 中设置 Robotics.robotInstance = myRobot; 。page2.js然后可以访问Robotics.robotInstance,没问题。

最重要的是,WinJS 命名空间只是保持全局命名空间井井有条和整洁的约定,但除此之外,它只是全局变量。没有魔法。