如题,在js中调用函数时,有时直接调用函数名,有时需要在函数名后加括号,二者有什么区别?什么时候加括号什么时候不加呢?
- 1.当不加括号时,该函数不会立即执行,一般与绑定的事件一起使用,如离焦事件,单击事件,此时,函数名相当于一个指针。以一段代码为例:
//2.密码校验
function checkPassword() {
//获取密码输入
var input = $("#password").val();
//定义正则表达式,密码规则
var regExp = /^\w{8,20}$/;
var flag = regExp.test(input);
if(flag){
//密码合法
$("#password").css("border","");
}else{
//密码非法,加一个红色边框
$("#password").css("border","1px solid red");
}
return flag;
}
//绑定离焦事件
$("#password").blur(checkPassword);
此时,离焦时才会触发代码执行。
- 2.当函数名加括号时,代码会立即执行。
checkPassword();//代码立即执行
$("#password").blur(checkPassword());//代码立即执行