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();
});
})();
现在它正在工作:)