麻烦老师解答一下

麻烦老师解答一下

老师,这题的a最后答案是全局变量a,但是我的第一反应是5,老师能解答一下为什么这个a不是对象里的a呢?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
imooc_慕慕 2022-07-24 14:29:01

同学你好,数组c中的a是全局变量a;这种写法是一种简写形式:属性名和变量名一样,属性名是a,值是变量a保存的值;

https://img1.sycdn.imooc.com//climg/62dce4ac090c531e03440225.jpg

而这个this,谁调用它,它就指向谁,obj.c[2]();可以看出,this指向的是数组c,打印的是数组c中下标为1的元素;

a没有加引号,表示是一个变量,变量a的值为6,所以输出为6;

其实我们可以打印一下这个this;

https://img1.sycdn.imooc.com//climg/62dce58409d372f804550408.jpg

https://img1.sycdn.imooc.com//climg/62dce5970906726802390070.jpg

可以很清晰的看到结果为6;

如果想打印obj中的a,可以这样写;

https://img1.sycdn.imooc.com//climg/62dce949093a134204710454.jpg

祝学习愉快~

  • 我的第一判断也是5。看了解答以后,我理解是:对象OBJ里面的a:5是obj的第0个键值,它不是变量,也不是将5赋值给a这个全局变量;而数组c里面的a是变量,因此答案是6.

    不知道我的理解对不对?

    2023-04-25 11:19:42
  • 你理解的是对的,obj.c中的a是全局变量。全局中a被赋值为6所以是6。

    2023-04-25 11:27:54
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师