JS对象直接量里面的this问题

StartFragment
var b={a:12,c:a};alert(b.c)我知道这样写是不对的,但是如果我这样写
var b={a:12,c:this.a};alert(b.c)为什么也是不对?这里的this指的是什么?或者我这样写,b={a:12,c:b.a};alert(b.c)为什么也是不对的。有没有大侠愿意帮忙解释下,谢谢。
梵蒂冈之花
浏览 562回答 5
5回答

蓝山帝景

一,你知道的就不说了; 二,首先让你看看JSON的正确写法,如下 var obj={ "A":12, "B":10 }; 也就是说类似“A”,“B”是需要有引号(当然没有引号也可以运行)。但是我觉得如果一接触json就是这种写法,那么今天你就不会有这样的疑问了。 接着说你写的第二个例子,这里this指的是window对象,所以A是undefined。 三,从语法上就是错的。

明月笑刀无情

这边的this 其实是window,全局中没有定义a,所以你的第2个语句显示的是undefined

收到一只叮咚

同一楼,c要引用a只能作为函数在里面引用: var b={a:12,c:function(){return this.a;}}; b.c(); this是指向代码调用/执行者,上面this指向b所以能取到b的a。 你而的代码执行者是window所以this也是window。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript