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]>写道: > 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]>写 道: > >> 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]> >> >>> 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]> >>> >>>> 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] >>>> https://mail.mozilla.org/listinfo/es-discuss >>>> >>>> >>> >>> >>> _______________________________________________ >>> es-discuss mailing >>> [email protected]https://mail.mozilla.org/listinfo/es-discuss >>> >>> >>> -- >>> jCore >>> Email : [email protected] >>> Web : www.jcore.fr >>> Webble : www.webble.it >>> Extract Widget Mobile : www.extractwidget.com >>> BlimpMe! : 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 >> >> > > -- > 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

