So there is a reason? ;) In this example, I wouldn't want Array to implement "increment" as a method -- only Numbers should have increment available (just as Array doesn't have "addClass" but Elements does). The example may be trivial, but if it was a list of more complex instances it becomes more evident.
On Fri, Dec 6, 2013 at 2:22 PM, Aaron Newton <[email protected]> wrote: > Why not just extend Array? > > > On Fri, Dec 6, 2013 at 11:21 AM, Regis <[email protected]> wrote: >> >> I want to create a class, similar to Elements (just, not with elements) >> which behaves like an array, but with additional methods on it that can >> manipulate the objects within (which are all of the same type). I'm aware >> that the magical "length" behavior wouldn't work as expected. >> >> For example, is there any reason why something like this would not work as >> expected (as it seems to just fine): >> >> var Numbers = new Class({ Extends: Array, increment: function(){ var self >> = this; self.forEach(function(n, i){ self[i]++; }); return self; } }); >> var n = new Numbers(); n.include(2).combine([3,4,5]).unshift(1); // >> [1,2,3,4,5] >> n.increment(); // [2,3,4,5,6] >> >> >> -- >> >> --- >> You received this message because you are subscribed to the Google Groups >> "MooTools Users" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> For more options, visit https://groups.google.com/groups/opt_out. > > > -- > > --- > You received this message because you are subscribed to a topic in the > Google Groups "MooTools Users" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/mootools-users/KBiU3Rq8SE8/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > [email protected]. > For more options, visit https://groups.google.com/groups/opt_out. -- --- You received this message because you are subscribed to the Google Groups "MooTools Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
