Javascript 使用WinJS.Class和access属性

Javascript 使用WinJS.Class和access属性,javascript,windows-8,windows-store-apps,winjs,Javascript,Windows 8,Windows Store Apps,Winjs,请查看以下代码: (function() { "use strict"; var game = WinJS.Class.define( null, { width: { get: function() { return window.innerWidth; } }, he

请查看以下代码:

(function() {
    "use strict";

    var game = WinJS.Class.define(
        null,
        {
            width: {
                get: function() {
                    return window.innerWidth;
                }
            },

            height: {
                get: function() {
                    return window.innerHeight;
                }
            },

            run: function() {
                // this.width and this.height is undefined
                Crafty.init(this.width, this.height);
                Crafty.canvas.init();
            }
        }
    );

    WinJS.Namespace.define("MyNamespace", {
        Game: new game()
    });

    window.addEventListener('load', MyNamespace.Game.run);
})();
我正在尝试访问
run
方法中的公共属性
width
height
。我得到的信息是,
this.width
未定义


如何访问它们?

我终于找到了解决方案。似乎
WinJS.Namespace.define
想要一个类定义,而不是一个实例化的对象。我将代码更改为:

(function() {
    "use strict";

    var gameClass = WinJS.Class.define(
        null,
        {
            width: {
                get: function() {
                    return window.innerWidth;
                }
            },

            height: {
                get: function() {
                    return window.innerHeight;
                }
            },

            run: function() {
                // this.width and this.height is undefined
                Crafty.init(this.width, this.height);
                Crafty.canvas.init();
            }
        }
    );

    var game = new gameClass();

    WinJS.Namespace.define("MyNamespace", {
        Game: {
            get: function() {
                return game;
            }
        }
    });

    window.addEventListener('load', function() {
        MyNamespace.Game.run();
    });
})();
现在它正在工作:)