javascript问题(一)

函数名后面什么时候加括号?

函数名后面加括号表示立即调用这个函数

函数名后面不加括号表示函数的引用变量,保存了函数的地址

加括号的情形:

<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参数因该传一个函数的引用,所以要传函数名,也就是不带括号;

猜你喜欢

转载自blog.csdn.net/let4897/article/details/82759978