关于arguments的问题?需要给我的问题连续看,代码里面都有

为什么这里a+b不出答案,而是object,如果用fn(),打印出来又出现NAN,为什么?这都是为了研究arguments研究出来的新问题,希望一解百解!
26
收起
正在回答
1回答
同学你好,问题解答如下:
1、在之前的问题中,老师和同学说过,debounce返回的匿名函数是addEventListener的第二个参数,所以它表示的是一个事件函数。在事件函数中,只有一个参数,那么就是事件对象。如果我们自己定义参数去传递是没有任何意义的。可以参考如下理解:
事件函数只有一个参数,即事件对象event

2、同学所写的代码中,可以参考如下理解:
第一个参数a表示event对象,而事件对象不会再有其他参数了,所以b为undefined。

可以输出一下a和b验证一下:


3、a+b则为event对象与undefined的运算,所以会出现如下结果:
[object KeyboardEvent]就是event对象,它在计算时,被自动转换为了字符串格式。

4、如果改成fn(),则没有传入任何参数,那么两个参数都为undefined,undefined与undefined相加结果为NaN。
5、自己可以记一下,事件函数只有一个参数,即event对象。这个参数是默认的,即使我们不去定义,当事件触发的时候,是默认就有的,我们可以直接拿来用。所以自己传递参数没有任何意义,不要这样去做。
祝学习愉快~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星