Questo è un esempio forzato, ma anziché cercare di spingere a portata globale, è possibile utilizzare l'ambito modulo per racchiudere una variabile che verrà utilizzato da diverse classi.
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();
Tutte le solite regole su più cose usando la stessa variabile applicano qui - non si vuole far rispettare un ordine particolare di eventi sul codice chiamante.
compila a:
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();
dove si imposterà il valore per CANVAS_WIDTH? –
nella classe di gioco che importa il modulo con la classe Bullet GameObjects = module ("GameObjects") – Nikos
Hai CANVAS_WIDTH nella classe Game e devi accedervi nella classe Bullet. Ho ragione? –