Js事件绑定时,函数名加括号和不加括号有什么区别 Js事件绑定时,函数名加括号和不加括号有什么区别以window.onload为列 大致可以理解为一:不加括号时:=指向函数,触发事件时触发函数。window.onload=aa;aa为一个函数等价于window.onload=fonction aa(){}; 二:加上括号时:现将函数运行,在将运行后的值赋值

Js事件绑定时,函数名加括号和不加括号有什么区别以window.onload为列
    大致可以理解为一:不加括号时:=指向函数,触发事件时触发函数。window.onload=aa;aa为一个函数等价于window.onload=fonction aa(){};
                             二:加上括号时:现将函数运行,在将运行后的值赋值

一,在js代码里

    加括号代表调用,执行这个方法;

    不加括号目的是引用,代表把这个函数赋值给某个变量。

      在下面代码里:

  1.1   btn.onclick=aa;是正常绑定事件,理解为:

<input id="btn" type="button" onclick="aa()" value="点击变色">

    点击触发执行 function aa(){...};

 

  1.2  btn.onclick=aa();理解如下;

         btn.onclick就相当于一个click事件的引用对象,只不过它附属于btn这个标签。

          等号是赋值操作如果是对象比如A,就会把对象A的指向赋给click事件的引用对象。aa是对象指向,aa()就是执行了函数,它最终是个什么东西,就看函数体返回什么类型,function aa()里有①和②,还有一个return,那么就是 --->先把aa()里①和②执行,在将 函数bb()return 给 btn.onclick;所以就相当于btn.onclick=bb;
[java]  view plain  copy
  1. <%@ page language="java" contentType="text/html; charset=UTF-8"  
  2.     pageEncoding="UTF-8"%>  
  3. <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>  
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  5. <html xmlns="http://www.w3.org/1999/xhtml">  
  6. <head>  
  7. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
  8. <title>函数括号</title>  
  9. </head>  
  10. <body>  
  11.   
  12. <div id="test">函数括号那回事</div>  
  13. <input id="btn" type="button" value="点击变色">  
  14.   
  15. <script type="text/javascript">  
  16.    function aa(){  
  17.    
  18.        alert("function aa()函数");  //  ①   
  19.   
  20.        document.getElementById("test").style.color="red";  //  ②  
  21.         
  22.        return function bb(){ //  ③  
  23.            alert("function aa()函数里面的function bb()!")  
  24.       }  
  25.    }  
  26.    function change(){  
  27.        var ip=document.getElementById("btn");  
  28.        btn.onclick=aa;   //正常绑定事件,onclick触发执行 ①弹出①对话框,②变色;不会执行③  
  29.        //btn.onclick=aa();  //页面加载,直接调用aa(),执行 ①弹出①对话框,②变色,但是onclick触发时,会执行③  
  30.    }  
  31.    change();  //调用change,直接执行  
  32. </script>  
  33. </body>  
  34. </html>  

一,在js代码里

    加括号代表调用,执行这个方法;

    不加括号目的是引用,代表把这个函数赋值给某个变量。

      在下面代码里:

  1.1   btn.onclick=aa;是正常绑定事件,理解为:

<input id="btn" type="button" onclick="aa()" value="点击变色">

    点击触发执行 function aa(){...};

 

  1.2  btn.onclick=aa();理解如下;

         btn.onclick就相当于一个click事件的引用对象,只不过它附属于btn这个标签。

          等号是赋值操作如果是对象比如A,就会把对象A的指向赋给click事件的引用对象。aa是对象指向,aa()就是执行了函数,它最终是个什么东西,就看函数体返回什么类型,function aa()里有①和②,还有一个return,那么就是 --->先把aa()里①和②执行,在将 函数bb()return 给 btn.onclick;所以就相当于btn.onclick=bb;
[java]  view plain  copy
  1. <%@ page language="java" contentType="text/html; charset=UTF-8"  
  2.     pageEncoding="UTF-8"%>  
  3. <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>  
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  5. <html xmlns="http://www.w3.org/1999/xhtml">  
  6. <head>  
  7. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
  8. <title>函数括号</title>  
  9. </head>  
  10. <body>  
  11.   
  12. <div id="test">函数括号那回事</div>  
  13. <input id="btn" type="button" value="点击变色">  
  14.   
  15. <script type="text/javascript">  
  16.    function aa(){  
  17.    
  18.        alert("function aa()函数");  //  ①   
  19.   
  20.        document.getElementById("test").style.color="red";  //  ②  
  21.         
  22.        return function bb(){ //  ③  
  23.            alert("function aa()函数里面的function bb()!")  
  24.       }  
  25.    }  
  26.    function change(){  
  27.        var ip=document.getElementById("btn");  
  28.        btn.onclick=aa;   //正常绑定事件,onclick触发执行 ①弹出①对话框,②变色;不会执行③  
  29.        //btn.onclick=aa();  //页面加载,直接调用aa(),执行 ①弹出①对话框,②变色,但是onclick触发时,会执行③  
  30.    }  
  31.    change();  //调用change,直接执行  
  32. </script>  
  33. </body>  
  34. </html>  

猜你喜欢

转载自blog.csdn.net/dreamerzhang66/article/details/80325611