首页 > JavaScript 中,function 写括号()和不写括号的问题:

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>     

不带括号就是点击的时候才会调用函数,如果有括号,那么直接就调用了,不需要点击。


不加括号

$('#one').click(function(){
    //doSomething
})

当你点击id为one的元素时才会执行内部语句

加括号相当于你页面加载后立即执行此函数 与点击无关

fn只是定义了函数体 fn()相当于执行了该函数


var a = BIANHONG;

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

var a = BIANHONG();

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

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

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

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

【热门文章】
【热门文章】