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 undefined1回答
好帮手慕言
2020-01-29
同学你好,是this指向不对,如果加了(),那么clickFn函数中的this指向的是window。因此会报错
可以修改一下:

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~
相似问题