JS行内调用为什么fn要加括号?不加括号是表示整个函数那么在onblur的时候会调用这整个函数,那么加括号执行这个函数没有返回值不是会返回undefined么?
<input type="text" onBlur="fn()" id="ip">
<script>
var ip=document.getElementById("ip");
ip.onblur=fn; //不加括号
function fn(){
alert(1);
}
</script>
<input type="text" onblur="fn()" id="ip">
这样等价于下面的,所以要加(),执行onblur的时候执行fn函数,不加()就不会执行fn了,也不报错
ip.onblur=function(){fn()}
ip.onblur=fn注册onblur事件,不能加(),加()就是执行fn将返回值作为onblur的处理函数了
fn() 表示一个方法,ip.onblur=fn; 表示触发这个方法;
JavaScript 支持函数式编程 ,函数也是变量 ,一个 fn 表示的就是一个函数 ,但是函数要执行 ,fn();
绑定事件的时候,当事件触发就会发射事件,然后执行fn,
加括号执行这个函数没有返回值是会返回undefined;也就是什么都不做
楼主即用了静态绑定事件,又使用了动态绑定事件,从静态绑定事件来说,onBlur="fn()"直接绑定了fn函数,在满足条件时就执行了fn函数;动态绑定事件ip.onblur=fn; 就是ip.onblur=function f(){alert(1)},所以不用加括号,在事件触发式也能执行fn()。若是没有返回值,则返回undefined。
fn是方法名,你可以和a=1一样看待也是一个变量,fn() 就是调用这个方法,方法名也是变量
fn是方法名,你可以和a=1一样看待也是一个变量,fn() 就是调用这个方法,方法名也是变量