函数名后面什么时候加括号?
函数名后面加括号表示立即调用这个函数
函数名后面不加括号表示函数的引用变量,保存了函数的地址
加括号的情形:
<div class="container" onclick="eventClick()">
这种情况下双引号内应该是一段可以执行的代码,如"alert(9)",所以这里相当于调用一个函数,应该是函数名();
var eu = new EventUtil();
var el = document.querySelector('body');
eu.addEvent(el, eventClick, "click");
function EventUtil(){
this.addEvent = function (element, handler, type){
if(element.addEventListener){
element.addEventListener(type, handler, false);
}else if(element.attachEvent){
element.attachEvent("on"+type, handler);
}else{
element["on" + type] = handler;
}
}
this.removeEvent = function (element, handler, type){
if(element.removeEventListener){
element.removeEventListener(type, handler, false);
}else if(element.detachEvent){
element.detachEvent("on"+type, handler);
}else{
element["on" + type] = null;
}
}
}
function eventClick(){
console.log("sewe");
}
这个例子里addEvent函数的handler参数因该传一个函数的引用,所以要传函数名,也就是不带括号;