日期:2014-05-16  浏览次数:20334 次

奇妙的js调用

最近在看系统,学习前辈的杰作,看到点有趣的js调用。jsp文件中脚本

if(passwordReg&&!passwordReg(password)){……}

?

仔细查看,发现根本没有passwordReg这个变量,只找到一个passwordReg.js文件,代码如下:?

?

//对外接口
function passwordReg(v){
	var regFun = reg1,flag;//默认通过
	
	if(regFun){
		flag = regFun(v);
	}
	
	return flag==null?true:flag;
	
}
//对外信息
var passwordMaskMsg;

//密码校验实体:大于等于6位不能是单纯的数字
function reg1(v){
	passwordMaskMsg = "新密码必须大于5位/不能使用纯数字";
	return v.length>=6&&!/^[0-9]*$/.exec(v);
}

//不校验
function reg2(v){
	return true;
}

?

看了半天,算是有点明白了.

?

javascript的核心是一个 面向对象 的语言。

?

if(passwordReg&&!passwordReg(password)){……}

先看是否有这个函数,再执行这个函数,看返回值;在执行函数的时候,var regFun = reg1,flag实际上相当于:

?????? var flag; var regFun = reg1;

?

?

?

这个问题算是弄明白了,但之前遇到的在给按钮写点击等响应事件函数时候,响应函数是否加引号,是否加参数,是否加括号……还有点儿迷糊,不知道有没有哪位大佬帮小弟解惑,不胜感激!