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)为什么也是不对的。有没有大侠愿意帮忙解释下,谢谢。
5 回答

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

收到一只叮咚
TA贡献1821条经验 获得超4个赞
同一楼,c要引用a只能作为函数在里面引用:
var b={a:12,c:function(){return this.a;}};
b.c();
this是指向代码调用/执行者,上面this指向b所以能取到b的a。
你而的代码执行者是window所以this也是window。
添加回答
举报
0/150
提交
取消