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>     
阅读 4.1k
3 个回答
var a = BIANHONG;

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

var a = BIANHONG();

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

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

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

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

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

不加括号

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

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

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

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

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