css - JavaScript 中,function 写括号()和不写括号的问题:
伊谢尔伦
伊谢尔伦 2017-04-11 09:13:02
[JavaScript讨论组]

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

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

<script>

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

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

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

</script>     

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

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

<script>

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

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

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

</script>     
伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(3)
伊谢尔伦
var a = BIANHONG;

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

var a = BIANHONG();

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

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

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

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

PHP中文网

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

高洛峰

不加括号

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

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

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

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号