例如函数名为f1,f1和f1()的区别

图片描述

<!DOCTYPE HTML>
<html lang="en-US">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>    
    <h2>DOM 2级事件绑定</h2>
    
    <button>解绑</button>

    <script type="text/javascript">
    
        var h2 = document.getElementsByTagName('h2')[0];
        function f1(){
            console.log('甲程序员的小功能');
        }
        //甲程序员
        h2.addEventListener('click',f1);

        //解绑
        var btn = document.getElementsByTagName('button')[0];
        btn.onclick = function(){
            h2.removeEventListener('click',f1);
        }
        
        //乙程序员
        h2.addEventListener('click',function(){
            console.log('乙程序员的小功能');
        });

        //丙程序员
        h2.addEventListener('click',function(){
            console.log('丙程序员的小功能');
        });

        
    
    </script>
</body>
</html>
阅读 3.2k
2 个回答

f1是函数对象本身,函数是相当于将函数对象赋值到函数名这个变量,所以可以类似访问变量一样访问函数的.
f1()是调用函数.

function test() { console.log('hello'); }
function callfun(f) { f(); } // Pass function `f` and call it in the function.
callfun(test);   // Call `test` and print 'hello'

f1()拿到的是函数调用的返回值,而f1表示的是一个函数的指向

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题