On Sat, Aug 6, 2016 at 6:01 PM, Jack <jack.b.p...@gmail.com> wrote:
> Hey,
>
> Currently I have a data structure that is a little something like this in
> C++:
> Team (class with properties e.g. Name, ID, etc.)
>     |____ Members (again has it's own properties, e.g. Name. Team holds a
> vector of pointers to Member objects.)
>
> I want this to work like this in JS:
> Team.Name gives the Team's name (same for ID, etc.)
> Team.Members[0].Name gives the Team's first member's name (again same for
> other basic properties of the Member class.)
>
>
> I can implement the basic Team class by creating an ObjectTemplate and
> binding a named property getter callback (this is done the same as the
> process.cc example, really) which will return things like Team.Id, Team.Name
> just fine.
> However, I'm unsure how to implement the Team.Members part. If I implement
> it by doing something like this in Team's named property getter callback:
> if (property_s == "Members") { // property_s is just the property argument
> casted to a c++ string
>     Local<Object> owner_obj = self->wrap_members(&team->members); //
> wrap_members returns a Members object based on an ObjectTemplate with
> indexed property callbacks
>     info.GetReturnValue().Set(owner_obj);
> }
> where wrap_members returns an Object created from ObjectTemplate with an
> indexed property getter callback then I can get it working to some degree,
> e.g. Team.Members[0] will return the correct name for the first Team member
> (I set it to just return the name for testing purposes.) My plan after this
> would be to make it so that the callback for Team.Members[x] would return
> yet another object based on an ObjectTemplate which then contains the
> information about that team member (Name, ID, etc.)
>
> However my issues right now are:
>
> Is this really the best way to implement this structure? It seems like I'm
> creating a lot of ObjectTemplates
> How can I implement .length for Team.Members? Do I have to also bind a named
> propeerty getter callback function to it? This leaves me creating even more
> functions.

Is there a reason you can't convert your data structure to plain JS
objects and arrays?

> How do I throw an out-of-bounds error or the like if the index provided is
> out of bounds?

That would be un-Javascript-y.  Out-of-bounds accesses normally
evaluate to `undefined`.

> I'm not sure if my explanation is understandable, please reply if it's not
> and I'll try and improve it. Thanks.

-- 
-- 
v8-users mailing list
v8-users@googlegroups.com
http://groups.google.com/group/v8-users
--- 
You received this message because you are subscribed to the Google Groups 
"v8-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to v8-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to