That will work everywhere, as I mentionned the issue is more global,
your case made me think about it, it's only the begining of a
suggestion, whether it's nice or not in the representation can be fixed
later, what I am questionning here is the abnormal/not optimized
behavior of "this", still thinking about it, what I wrote below does not
solve all cases

Le 06/03/2012 17:33, 程劭非 a écrit :
> That will work in json but Object.GetBase is not so nice.
>
> Also I think GetBase(GetBase(GetBase(this))) looks a bit ugly.
>
> 在 2012年3月7日 上午12:22,Aymeric Vitte <[email protected]
> <mailto:[email protected]>>写 道:
>
>     Even if GetBase was existing I don't know if it would cover all
>     your needs but unless I missed something I don't get your last
>     example (where p is defined and where GetBase is supposed to be
>     called ?)
>
>     Le 06/03/2012 16:33, 程劭非 a écrit :
>>     Sorry.
>>     I mean the following case:
>>
>>     var x = {
>>     a:{
>>     },
>>     b:{
>>     }
>>     }
>>
>>     x.a.p = x.b.p = {};
>>
>>     So GetBase is not able to decide to return x.a or x.b.
>>
>>
>>     在 2012年3月6日 下午11:08,Aymeric Vitte <[email protected]
>>     <mailto:[email protected]>>写 道:
>>
>>>         Some object could have more than one ancestor.
>>
>>         Yes, so ? It's not in contradiction with what I am saying
>>
>>         Le 06/03/2012 14:58, 程劭非 a écrit :
>>>         I prefer "this" to be root object. Some object could have
>>>         more than one ancestor.
>>>
>>>         2012/3/6 Aymeric Vitte <[email protected]
>>>         <mailto:[email protected]>>
>>>
>>>             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 <[email protected]
>>>>             <mailto:[email protected]>>
>>>>
>>>>                 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
>>>>                 [email protected] <mailto:[email protected]>
>>>>                 https://mail.mozilla.org/listinfo/es-discuss
>>>>
>>>>
>>>>
>>>>
>>>>             _______________________________________________
>>>>             es-discuss mailing list
>>>>             [email protected] <mailto:[email protected]>
>>>>             https://mail.mozilla.org/listinfo/es-discuss
>>>
>>>             -- 
>>>             jCore
>>>             Email :  [email protected] <mailto:[email protected]>
>>>             Web :    www.jcore.fr <http://www.jcore.fr>
>>>             Webble : www.webble.it <http://www.webble.it>
>>>             Extract Widget Mobile : www.extractwidget.com 
>>> <http://www.extractwidget.com>
>>>             BlimpMe! : www.blimpme.com <http://www.blimpme.com>
>>>
>>>
>>
>>         -- 
>>         jCore
>>         Email :  [email protected] <mailto:[email protected]>
>>         Web :    www.jcore.fr <http://www.jcore.fr>
>>         Webble : www.webble.it <http://www.webble.it>
>>         Extract Widget Mobile : www.extractwidget.com 
>> <http://www.extractwidget.com>
>>         BlimpMe! : www.blimpme.com <http://www.blimpme.com>
>>
>>
>
>     -- 
>     jCore
>     Email :  [email protected] <mailto:[email protected]>
>     Web :    www.jcore.fr <http://www.jcore.fr>
>     Webble : www.webble.it <http://www.webble.it>
>     Extract Widget Mobile : www.extractwidget.com 
> <http://www.extractwidget.com>
>     BlimpMe! : www.blimpme.com <http://www.blimpme.com>
>
>

-- 
jCore
Email :  [email protected]
Web :    www.jcore.fr
Webble : www.webble.it
Extract Widget Mobile : www.extractwidget.com
BlimpMe! : www.blimpme.com

_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to