关于变量作用范围

关于变量作用范围

num_value是定义在初始化函数中的,页面加载以后函数应该就执行完了,而且变量num_value是定义在匿名函数之外,button中的事件应该是匿名函数,为什么onclick事件依然可以使用该变量,并且不同的button可以使用同一个变量?

http://img1.sycdn.imooc.com//climg/5f54f715091b5a1e12351241.jpg

正在回答

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

2回答

同学你好,

1、num_value的作用域是init()方法,所以在init()方法中可以使用num_value变量。

2、js中的变量是弱类型的,可以不使用var定义变量,直接给未定义的变量赋值。

在init()方法内部定义变量,用var定义,作用域仅在init()方法内部;不用var定义的变量,在init()方法外部还是可以取到的。

如下:

http://img1.sycdn.imooc.com//climg/5f559d5c09c1ef4102920156.jpg

运行结果如下:

http://img1.sycdn.imooc.com//climg/5f559d7a095b336a04470113.jpg

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 能掐会算 提问者 #1
    关于第一点,虽然在init()定义了变量,但这个初始化过程是给每个button的onclick事件添加一个函数,加载结束后init()中num_value的作用域就结束了,“+”和“=”的事件应该是两个函数,为什么可以工用一个num_value呢
    2020-09-07 10:51:37
  • 好帮手慕阿慧 回复 提问者 能掐会算 #2
    同学你好,每个button绑定onclick事件是在init()方法中,由于“+”和“=”的事件在init()方法中,所以是可以使用定义的变量num_value的。 祝学习愉快~
    2020-09-07 13:42:03
  • 能掐会算 提问者 回复 好帮手慕阿慧 #3
    老师好,我纠结的地方是,init只在初始化的时候使用,初始化结束后为什么按键还可以共用一个变量,因为没有声明的变量作为全局变量妈?
    2020-09-07 15:10:04
能掐会算 提问者 2020-09-06 23:25:02

测试了一下,发现把上面的定义代码去掉依然可以正常使用这是为什么呢?

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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