a的值为什么取6,不取5?

a的值为什么取6,不取5?

http://img1.sycdn.imooc.com//climg/612581bc09c209d919200945.jpg

a为什么取全局变量,而不取局部变量?

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

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

2回答
好帮手慕然然 2021-08-25 13:01:00

同学你好,在这段代码中,a是作为数组c中的元素存在的,此时的a不是对象obj的属性a(对象的属性一般是通过打点调用,如obj.a),而是全局中的变量a。

如果a在函数中使用,则要先根据该函数的调用方式来确定执行上下文(即this指向),才能确定this中的a是哪个a。

如果是通过数组下标的方式调用函数,这个函数的执行上下文this,就是这个数组,this中的a是数组中的a,如图

http://img1.sycdn.imooc.com//climg/6125cbec09f5840212270354.jpg

如果是通过obj对象打点的方式调用函数,这个函数的执行上下文this,就是这个obj对象,this中的a是obj对象中的a,如图

http://img1.sycdn.imooc.com//climg/6125cd33099acae414980423.jpg

祝学习愉快!

  • obj中c键的数组a这项为什么是全局变量,搞不明白

    2021-09-18 22:59:22
  • 同学你好,一般访问对象中的某个属性,通常需要打点调用,比如:obj.a。

    此时数组中的a是访问变量的写法(c: [1, a , function() {}]),而不是访问对象属性的写法,因此a是全局变量a。祝学习愉快!

    2021-09-22 14:37:44
电磁护盾 提问者 2021-08-25 07:40:07
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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