DOM0级事件调用自定义函数时,照理说加了括号会在页面打开时自动调用,为什么就报错了?
来源:2-9 选择题
慕函数1351374
2020-01-26 17:41:20
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>HTML事件</title> <style> input{ width:100px; height:30px; background:white; border:grey 1px double; font-size:16px; } </style> </head> <body> <input type="button" id="btn" name="button1" value="点击我试试"/> <script> var v_input=document.getElementById("btn"); var para2="green"; function clickFn(){ this.style.backgroundColor=para2; // alert("我是一个函数"); }; v_input.onclick=clickFn(); //加了括号之后报错,不加括号正常 </script> </body> </html>报错信息:TypeError: Cannot set property 'backgroundColor' of undefined
1回答
好帮手慕言
2020-01-29
同学你好,是this指向不对,如果加了(),那么clickFn函数中的this指向的是window。因此会报错
可以修改一下:
如果我的回答帮助到了你,欢迎采纳,祝学习愉快~
相似问题