Struct

重すぎて、history などでは結局使わないことになったようだが
liberator.modules.Struct
はなかなか便利。

let Neko = new Struct("name", "class", "tails");
Neko.defaultValue("tails", function () 1);

let alex = new Neko("alex", "mix");
liberator.log(alex);        // => class:"mix"
                            //    name:"alex"
                            //    tails:undefined
liberator.log(alex[0]);     // => alex
liberator.log(alex[1]);     // => mix
liberator.log(alex[2]);     // => 1

let jemmy = new Neko("jemmy", "American Short Hair", 2);
liberator.log(jemmy);       // => class:"American Short Hair"
                            //    name:"jemmy"
                            //    tails:2
liberator.log(jemmy[0]);    // => jemmy
liberator.log(jemmy[1]);    // => American Short Hair
liberator.log(jemmy[2]);    // => 2

liberator.log(jemmy.members); // => name,class,tails
liberator.log(jemmy.length);  // => 3