JavaScript中的响应函数

问题:下面的代码最后一行

codeBox.onclick = createNumber;    

为什么这行后面的createNumber后面没带括号?

	//生成随机验证码
			var codeBox = document.getElementById('codeBox');
			function createNumber(){
				var number = '0123456789qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM';
				codeText = "";
				for (var i = 0; i < 4; i++) {
					var oor = Math.floor(Math.random()*62);
					var add = number.charAt(oor);
					codeText += add;
				}
				codeBox.innerHTML = codeText;
			}
			createNumber();
			codeBox.onclick = createNumber;  
			

因为onclick接收的是一个函数,
如果让后边等上一个带括号的函数的时候,浏览器会先识别到等号后边是一个函数,然后先执行这个函数,将函数的返回值赋给一个函数,这显然不是很合适,有点驴头不对马嘴。
如果等号后面是一个不带括号的函数名的话,浏览器会这样做,把等号后面的函数赋给onclick函数将函数赋给函数,这样就好多了它俩很合适。
证明如下:

codeBox.onclick = 
				function(){
				alert("正在响应");
			};

运行结果:点击一下 会提示 “正在响应”

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值