开发者社区 问答 正文

求教JavaScript 中,function 写括号()和不写括号的问题:

如果带★★★的那句不写括号的,就是下面的情况,只有点击了 元素one 后才激活事件;

<div id="one">aa</div>    

<script>

    var a = BIANHONG;  //★★★★★★★注意这句

    $("#one").click(a);

    function BIANHONG()
    {document.bgColor='red';}

</script>     

但是如果加上括号,如下,打开网页就会加载事件,这是什么道理?

<div id="one">aa</div>    

<script>

    var a = BIANHONG();  //★★★★★★★注意这句

    $("#one").click(a);

    function BIANHONG()
    {document.bgColor='red';}

</script>     

展开
收起
杨冬芳 2016-06-12 17:40:46 2118 分享 版权
1 条回答
写回答
取消 提交回答
  • IT从业

    var a = BIANHONG;

    的意思是 把函数BIANHONG 赋值给 a, 此后 可以 a() 和 BIANHONG() 是一样的。

    var a = BIANHONG();

    的意思是把 函数 BIANHONG 的执行结果赋值给 a。这时候a是BIANHONG执行的结果,a自身不是一个函数。 (这里因为 BIANHONG 没有return 人和东西,a 会是 undefined)

    另外你这里面,第二组的方式写是不对的。
    你尝试给 a 赋值位 BIANHONG 这个函数的结果,然而此时还没有 BIANHONG的定义(你在下面才定义的)

    你需要把 BIANHONG 函数写到更上面一些。。。。

    这位兄台看起来对编程也是涉足未深,我劝您回头是岸。

    2019-07-17 19:34:47
    赞同 展开评论