JS调用函数的后面加括号与不加括号的区别

//代码一:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>javascript</title>
    <meta charset="utf-8" />
    <script>
        function changeSize() {
            var obj = document.getElementById("txt");
            obj.style.fontSize = "30px";
        }
    </script>
</head>
<body>
    <p id="txt" onclick="changeSize()">加括弧的changeSize()</p>
</body>
</html>
//代码二 
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>javascript</title>
    <meta charset="utf-8" />
</head>
<body>
    <p id="txt">未加括弧的changeSize</p>
    <script>
        function changeSize() {
            var obj = document.getElementById("txt");
            obj.style.fontSize = "30px";
        }
        document.getElementById("txt").onclick = changeSize;
    </script>
</body>
</html>

代码一:在HTML中 使用onclick=”changeSize() 调用函数是一定要加括号的,这样才能顺利调用函数。

代码二:如果是在JavaScript中写,document.getElementById(“txt”).onclick = changeSize; 或document.getElementById(“txt”).onclick = changeSize(); 加括号和不加括号有很大的区别。
==加了括号表示把函数的返回值赋给onclick事件,页面会直接触发onclick该事件,不需要点击;不加括号表示把函数赋给onclick属性,而不是返回值,所以在这里不需要加括号,从而点击触发效果。==

onclick = function;
//表示把函数赋给onclick属性

onclick = function();
//表示把函数的返回值赋给onclick

function a(){
    return 1;
}

var b = a;
b此时等于执行完函数的返回值:1
var b = a();
b这时的值是函数 function a(){return 1;}

猜你喜欢

转载自blog.csdn.net/lian_easel/article/details/79796746