var strategies={
isNonEmpty:function(value,errorMsg){
if(value===""){
return errorMsg;
}
},
minLength:function(value,length,errorMsg){
if(value.length
请输入用户名:
请输入密码:
请输入手机号码:
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
this.cache是个数组,将一个匿名函数压入这个数组中,所以这个return是和你问的第三个问题相对应。访问对象的属性有两种方法,一种用
.,一种是在key为变量的情况下,采用数组的访问形式。validatorFunc就是第一点中压入this.cache的匿名函数,所以,validatorFunc()是在执行这个匿名函数,那么第一点的return也就知道了,就是这个匿名函数的返回值。我不明白的是写成这样有什么好处么?为什么看起来很别扭啊。
上面的
strategy在中括号中,可以作为一个变量(可以是"isNonEmpty", "minLength"...)。return是返回校验函数执行的结果(这样才可以拿到错误信息)。这里的
validatorFunc就是前面add()进缓存(cache)中的校验函数。似乎这个问题只有有人问过了
1.2)this.cache数组中添加了一个函数,这个函数的返回值为
strategies[strategy]绑定的函数的的执行结果
函数对象apply/call的用法再去搜索下吧
strategy是一个变量,这个变量的值你可以结合参照这段代码看(就是strategies的属性名,而这个属性值为一个函数对象)
3)cache中存放的时函数对象
取出函数对象
执行函数