| 12
 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