これは不自然な例ですが、むしろグローバルスコープにプッシュしようとするよりも、あなたには、いくつかのクラスから使用される変数を囲むために、モジュールのスコープを使用することができます。
module MyModule {
var x: number = 5;
export class FirstClass {
doSomething() {
x = 10;
}
}
export class SecondClass {
showSomething() {
alert(x.toString());
}
}
}
var a = new MyModule.FirstClass();
a.doSomething();
var b = new MyModule.SecondClass();
b.showSomething();
ここでは、同じ変数を使用する複数のものについての通常の規則がすべて適用されます。コールするコードに特定の順序のイベントを強制したくない場合。
にコンパイル:あなたはstaticとしてこれらのプロパティを定義する必要が
var MyModule;
(function (MyModule) {
var x = 5;
var FirstClass = (function() {
function FirstClass() {
}
FirstClass.prototype.doSomething = function() {
x = 10;
};
return FirstClass;
})();
MyModule.FirstClass = FirstClass;
var SecondClass = (function() {
function SecondClass() {
}
SecondClass.prototype.showSomething = function() {
alert(x.toString());
};
return SecondClass;
})();
MyModule.SecondClass = SecondClass;
})(MyModule || (MyModule = {}));
var a = new MyModule.FirstClass();
a.doSomething();
var b = new MyModule.SecondClass();
b.showSomething();
ここでCANVAS_WIDTHの値を設定しますか? –
は、Bulletクラスでモジュールをインポートするゲームクラスにあります。GameObjects = module( "GameObjects") – Nikos
GameクラスにはCANVAS_WIDTHがあり、Bulletクラスにアクセスする必要があります。私は正しい? –