Consider extending JSON grammar to support objects with circular reference

程劭非 csf178 at gmail.com
Tue Mar 6 05:58:37 PST 2012


I prefer "this" to be root object. Some object could have more than one
ancestor.

2012/3/6 Aymeric Vitte <vitteaymeric at gmail.com>

>  Yes, assuming that GetBase is usable (8.9) :
>
> var obj = {
>     x:{
>         a: GetBase(this) // obj
>     }
> }
>
> But it is an internal function only, there are things defined in specs to
> access properties of objects but nothing the other way, because I believe
> the case never happens today.
>
> The "this" proposal is not bad for me (and even good), if I take Lasse
> Reichstein's objection, I would say :
>
>  {"a" : this.b, //undefined
>   "b" : this.a } //undefined
>
>
> Same as if you do : function f() {this.a = this.b; this.b = this.a}; var g
> = new f();//g.a undefined //g.b undefined
>
> It does not solve your issue but it makes me think to a more global issue,
> the "lexical this" here
> http://brendaneich.com/2011/01/harmony-of-my-dreams/ or this post
> https://mail.mozilla.org/pipermail/es-discuss/2012-February/020749.html(which apparently did not passionate)
>
> But this should not be applicable to functions only, this could be
> generalized to objects, where "this" unless explicitely bound to something
> should refer to the object itself, and not the global object (moreover that
> there are discussions about the future of the global object)
>
> Then an Object.GetBase could be added to refer to the "parent" or "outer
> object"
>
> I am not aware of all discussions (maybe it was already discussed and
> rejected) and it's not easy to see the whole impact of such change, but I
> don't think that the idea is absurd, I did not invent it myself and it
> would be more logical than the current behavior of "this" and avoid
> repetitives operations (var self=this, getters/setters, use of new (why do
> I have to use new in the example above ?))
>
> Regards
>
> A. Vitte
>
> Le 05/03/2012 13:16, 程劭非 a écrit :
>
> {
>   "a":123,
>   "b": this.a
> }
>
>  If you simply want “this” in JSON.parse,  it will not be hard to
> implement it in my library.
> But I guess the problem is we have no way to refer to its parent. Do you
> have any ideas?
>
> 2012/3/5 gaz Heyes <gazheyes at gmail.com>
>
>> It's a shame that "this" doesn't work with object literals :(
>> How nice would this be:
>>
>> {
>>   "a":123,
>>   "b": this.a
>> }
>>
>> _______________________________________________
>> es-discuss mailing list
>> es-discuss at mozilla.org
>> https://mail.mozilla.org/listinfo/es-discuss
>>
>>
>
>
> _______________________________________________
> es-discuss mailing listes-discuss at mozilla.orghttps://mail.mozilla.org/listinfo/es-discuss
>
>
> --
> jCore
> Email :  avitte at jcore.fr
> Web :    www.jcore.fr
> Webble : www.webble.it
> Extract Widget Mobile : www.extractwidget.com
> BlimpMe! : www.blimpme.com
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20120306/eb2702cf/attachment.html>


More information about the es-discuss mailing list