Have been seeing the term "Expando" used recently with Dart. Sounds interesting. The API did not provide much of a clue to me.
An example or two could be most helpful!
(Not sure if this is related, but I am most anxious for a way to add methods (getters) and/or variables to a class. Hoping this might be a key to solving this problem. (hint: I am using the Nosuchmethod method now and want to be able to return the value of the unfound method.))
Thanks in advance,
_swarmii
Expandos allow you to associate objects to other objects. One very useful example of this is an HTML DOM element, which cannot itself be sub-classed. Let's make a top-level expando to add some functionality to an element - in this case a Function signature given in the typedef statement:
typedef CustomFunction(int foo, String bar); Expando<CustomFunction> domFunctionExpando = new Expando<CustomFunction>();
Now to use it:
main(){ // Assumes dart:html is imported final myElement = new DivElement(); // Use the expando on our DOM element. domFunctionExpando[myElement] = someFunc; // Now that we've "attached" the function to our object, // we can call it like so: domFunctionExpando[myElement](42, 'expandos are cool'); } void someFunc(int foo, String bar){ print('Hello. $foo $bar'); }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With