Defining a Symbol object to be use as a property object
Ups. ---------- Forwarded message ---------- From: "Salvador de la Puente González" <salva at unoyunodiez.com>
Date: 10 Oct 2014 08:04 Subject: Re: Defining a Symbol object to be use as a property object To: "L2L 2L" <emanuelallen at hotmail.com>
Cc:
I don't know why do you want to do so but if it is because you want to
hide a complete structure from the outside world then remember symbols can be used to index another object so this is valid:
var myPrivate = Symbol(); var obj = {}; obj[myPrivate] = {};
Hope it solves your use case.
On 10 Oct 2014 07:06, "L2L 2L" <emanuelallen at hotmail.com> wrote:
I've played around with Symbol. And from my understanding, they are use
to define unique properties and variable --I'm still not fully knowledgeable on them, only what I read. So if you would like to give your summary of them, please feel free.--.
My proposal is to be able to define an symbol object:
var obj = new Symbol("symbol obj");
Why?
To be able defined properties for objects with keys of symbol, as so:
var obj = {};
obj.propObj = new Symbol("propObj");
obj.propObj.prop = Symbol("prop");
This is doable via all constructor wrapper objects for all primitive
data types.
It'll be a nice addition to this primitive type to have the same
capability.
I declined from my proposal as it seem to be a way...--I haven't figure it out yet, or still don't fully understand the nature of Symbol-- my apology.
E-S4L N-S4L J
Symbols are basically a way to create "private" keys otherwise unaccessible
( except for Objeect.getOwnPropertySymbols
that AFAIK will exposes them
anyway ).
Symbols are also sometimes used to define special "magic" behaviors
A sort of polyfill to play with Symbols in ES5 capable engines is here: gist.github.com/WebReflection/5238782
Bear in mind that might be outdated or not fully spec compliant.
I've played around with Symbol. And from my understanding, they are use to define unique properties and variable --I'm still not fully knowledgeable on them, only what I read. So if you would like to give your summary of them, please feel free.--.
My proposal is to be able to define an symbol object:
var obj = new Symbol("symbol obj");
Why?
To be able defined properties for objects with keys of symbol, as so:
var obj = {};
obj.propObj = new Symbol("propObj");
obj.propObj.prop = Symbol("prop");
This is doable via all constructor wrapper objects for all primitive data types.
It'll be a nice addition to this primitive type to have the same capability.
This is my proposal.
E-S4L N-S4L J