<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>js中方法名后加括号和不加口号的区别</title>
</head>
<body>
<div id="target">
</div>
<button id="btn" onclick="test()">按钮</button>
</body>
</html>
<script type="text/javascript">
var test = function(){
var span = document.createElement("span");
span.innerHTML="添加";
document.getElementById("target").appendChild(span);
}
//document.getElementById("btn").onclick=test;
//document.getElementById("btn").onclick=test();
</script>
如上述的代码,
在button标签中绑定onclick事件,要写成test(),不能写成test,test是指向一个function,当点击按钮的时候,test()就告诉浏览器执行test函数,而test只是告诉了浏览器test函数,并没有要执行
在js中onclick绑定时,要写成test,这样就会把test函数绑定在按钮上,当点击的时候就执行,如果写成test()的话,在onclick绑定时就执行了test函数,所以onclick绑定的东西是test执行后的结果或者返回函数,如果想绑定的是某个函数的返回函数(return function{}),就可以用οnclick=test();
以上是通过网上找资料、自己实践后自我总结的一点看法,和大家分享下,如果有什么写的不对地方还请大家多多包涵、多提提意见