扫码关注官方订阅号
按钮 伊谢尔伦 小伙看你根骨奇佳,潜力无限,来学PHP伐。 全部回复(5) 我来回复 PHP中文网2017-04-11 12:02:54 5楼 "无效代码,不被执行",这半句我觉得可以再深入一点。你在e.addEventListener("click",somename)的时候,第二个参数代表的是变量名。 somename就是一个变量名,你用typeof somename可以得到这个变量的类型,如果它是function,那么click事件发生的时候就会去执行这个函数。 但是现在直接把somename()传进去之后是什么意思呢?意思是把somename()的运行结果作为第二个参数传进去,那么typeof somename()得到的是什么呢?undefined。所以这里就发生了:1.运行函数(发生了alert),得到结果(undefined),将结果作为addEventListener的第二个参数传入;2.click事件发生的时候,执行undefined,所以什么也不发生,当然e.addEventListener("click",undefined)第二个参数为undefined的话,这个绑定动作其实也没有发生,所以你说“第二项参数不符合”也是OK的。 赞 +0 添加回复 伊谢尔伦 回复 ringa_lee2017-04-11 12:02:54 4楼 理解的没错,理解的没错 赞 +0 添加回复 伊谢尔伦 回复 高洛峰2017-04-11 12:02:54 3楼 对终于分清函数和函数执行了 赞 +0 添加回复 伊谢尔伦 回复 天蓬老师2017-04-11 12:02:54 2楼 楼主搜一下(js预解释),或许会有不同的理解。 赞 +0 添加回复 伊谢尔伦 回复 阿神2017-04-11 12:02:54 1楼 ‘因为第二项参数不符合’你这样说也没错,可以这样理解;e.addEventListener("click",demo1()) 当代码执行这段时demo1()被执行而且函数返回值是undefined,相当于e.addEventListener("click",undefined);这情况下这个绑定事件也不会被成功绑定,也就是button压根没被绑上‘click’事件,所以你再点他时是没有反应的。 赞 +0 添加回复 伊谢尔伦 回复
小伙看你根骨奇佳,潜力无限,来学PHP伐。
"无效代码,不被执行",这半句我觉得可以再深入一点。你在e.addEventListener("click",somename)的时候,第二个参数代表的是变量名。
e.addEventListener("click",somename)
somename就是一个变量名,你用typeof somename可以得到这个变量的类型,如果它是function,那么click事件发生的时候就会去执行这个函数。
但是现在直接把somename()传进去之后是什么意思呢?意思是把somename()的运行结果作为第二个参数传进去,那么typeof somename()得到的是什么呢?undefined。所以这里就发生了:1.运行函数(发生了alert),得到结果(undefined),将结果作为addEventListener的第二个参数传入;2.click事件发生的时候,执行undefined,所以什么也不发生,当然e.addEventListener("click",undefined)第二个参数为undefined的话,这个绑定动作其实也没有发生,所以你说“第二项参数不符合”也是OK的。
somename()
e.addEventListener("click",undefined)
理解的没错,理解的没错
对终于分清函数和函数执行了
楼主搜一下(js预解释),或许会有不同的理解。
‘因为第二项参数不符合’你这样说也没错,可以这样理解;e.addEventListener("click",demo1()) 当代码执行这段时demo1()被执行而且函数返回值是undefined,相当于e.addEventListener("click",undefined);这情况下这个绑定事件也不会被成功绑定,也就是button压根没被绑上‘click’事件,所以你再点他时是没有反应的。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
"无效代码,不被执行",这半句我觉得可以再深入一点。你在
e.addEventListener("click",somename)的时候,第二个参数代表的是变量名。somename就是一个变量名,你用typeof somename可以得到这个变量的类型,如果它是function,那么click事件发生的时候就会去执行这个函数。
但是现在直接把
somename()传进去之后是什么意思呢?意思是把somename()的运行结果作为第二个参数传进去,那么typeof somename()得到的是什么呢?undefined。所以这里就发生了:1.运行函数(发生了alert),得到结果(undefined),将结果作为addEventListener的第二个参数传入;2.click事件发生的时候,执行undefined,所以什么也不发生,当然e.addEventListener("click",undefined)第二个参数为undefined的话,这个绑定动作其实也没有发生,所以你说“第二项参数不符合”也是OK的。理解的没错,理解的没错
对
终于分清函数和函数执行了
楼主搜一下(js预解释),或许会有不同的理解。
‘因为第二项参数不符合’你这样说也没错,可以这样理解;
e.addEventListener("click",demo1()) 当代码执行这段时demo1()被执行而且函数返回值是undefined,相当于e.addEventListener("click",undefined);这情况下这个绑定事件也不会被成功绑定,也就是button压根没被绑上‘click’事件,所以你再点他时是没有反应的。