1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
| // Ajout d'un sous espace de nom à System
with(System.addNameSpace("My")) {
// Ajoute d'une classe
with(addClass("MyClass", /* Constructeur, argument facultatif */ function() {
/* Cet appel est requis par le Designer de classe */
this.getType().New(this);
/* Vous pouvez ajouter ici tout autre appel prévu par votre fonction */
// Utilisation d'un Evenement (créé ici par la propriété)
this.onFieldChange.addHandler(function(sender, e) {
sender.Field=sender.getField();
});
})) {
addProperty("Field"); // Ajoute une propriété public à la classe (n'a aucun rapport avec le champ Field, le rapport officieux est effectué ligne 11)
addSub("resetField", function() { this.setField(null); }) // Ajoute une fonction à la classe
/*
addEvent("X") // Ajoute l'evenement onX à la classe
addClass("subClass") // Ajoute une sous classe
*/
}
}
// Instanciation de la classe
var MCI=new System.My.MyClass();
// Invocation d'une propriété (get/setP)
MCI.setField("value");
// Création d'un délégué
var getMCIField=CreateDelegate(MCI.getField, MCI);
// Utilisation du délégué, le lien avec l'objet est fait par JavaScript
alert("getMCIField:"+getMCIField());
// Invocation d'une fonction (F)
MCI.resetField();
alert("MCI.getType().getPath():"+MCI.getType().getPath());
// Destruction partielle de l'objet (pour prendre de vitesse le Garbage Collector)
// MCI.dispose();
// Test de getType()
try { alert("document.getType():" + document.getType().getPath()); } catch (ex) {} //(IE:Erreur; FF:System.Object)
alert("getTypeOf(document):" + Object.getTypeOf(document).getPath()) //(IE:System.XMLNode; FF:Idem)
alert("getTypeOf(document.firstNode):" + Object.getTypeOf(document.firstNode).getPath()) //(IE:System.Undefined; FF:Idem) ((PS::document.firstNode doesn't exist))
alert("getTypeOf(null):" + Object.getTypeOf(null).getPath()) //(IE:System.Undefined; FF:Idem)
alert("getTypeOf(Function):"+getTypeOf(function() {}).getPath());
// Test de isSubClassOf
with(System.addClass("TestEventArgs")) {
inherits(System.EventArgs);
}
with(System.addClass("TestEventArgs2")) {
inherits(System.TestEventArgs);
}
var T=new System.TestEventArgs2();
alert("SubClassOf(T,EventArgs&Object):"+isSubClassOf(T, System.EventArgs) + "&" + isSubClassOf(T, System.Object))
alert("InstanceOf(T,TestEventArgs2):"+isInstanceOf(T, System.TestEventArgs2))
alert("InstanceOf(T,TestEventArgs):"+isInstanceOf(T, System.TestEventArgs))
alert("SubClassOf(T,Event):"+isInstanceOf(T, System.Event))
alert("SubClassOf(3,Number):"+isSubClassOf(3, System.Number))
alert("SubClassOf(false,Boolean):"+isSubClassOf(false, System.Boolean))
alert("SubClassOf(Type,Function):"+isSubClassOf(T.getType(), System.Function))
// Test forEach
var t1={"value":true,"value2":false}
alert("forEach: all")
t1.forEach(function(o,k) { alert (k) })
alert("forEach: ownPropertiesOnly")
t1.forEach(function(o,k) { alert (k) }, true)
t1=["value","value2"];
alert("Array; forEach: all")
t1.forEach(function(o,k) { alert (k) }) |
Partager