首页 新闻 会员 周边 捐助

javascript一个括号的问题

0
悬赏园豆:10 [已解决问题] 解决于 2014-11-04 18:56
window.onload = writeMessage;    //不能有();

function writeMessage() {
    // body...
    document.getElementById("hello").innerHTML="hello,world";
    
}

第一行,writeMessage函数后面为什么不能加括号呢?莫非引用的时候不能加?

 
 
夜之圣子的主页 夜之圣子 | 初学一级 | 园豆:5
提问于:2014-11-04 15:25
< >
分享
最佳答案
0

有括号表示执行,如果加了的话,相当于你给onload设置的不是一个函数,而是writeMessage的返回值。js中,函数的默认返回值为undefind

收获园豆:9
幻天芒 | 高人七级 |园豆:37207 | 2014-11-04 17:06

秒醒~

拜谢~

 
夜之圣子 | 园豆:5 (初学一级) | 2014-11-04 18:55

@夜之圣子: :)

幻天芒 | 园豆:37207 (高人七级) | 2014-11-05 08:44
其他回答(1)
0

其实换个写法就能理解,我对JS不是很熟悉,但是以下代码应该可以解释这个现象:

window.onload = writeMessage;    //不能有();

var writeMessage = function() {
    // body...
    document.getElementById("hello").innerHTML="hello,world";
    
}

Function是一个特殊的对象,创建一个函数和创建一个普通的变量是一样的,你那种创建函数的写法可能是简写模式。

收获园豆:1
会长 | 园豆:12463 (专家六级) | 2014-11-04 16:18

唔……试过了,这不是简写,不过还是谢谢~~

 
支持(0) 反对(0) 夜之圣子 | 园豆:5 (初学一级) | 2014-11-04 18:56

@夜之圣子: 你确定?我觉得就是简写,呵呵

支持(0) 反对(0) 会长 | 园豆:12463 (专家六级) | 2014-11-05 09:26

@会长: 嗯,虽然没学完,不敢拍胸脯保证,但是我翻过了整本书,在相同的用法上都是这么用的,没发现别的写法。function本身的意思就是“创建函数”……

 
支持(0) 反对(0) 夜之圣子 | 园豆:5 (初学一级) | 2014-11-05 09:34

@夜之圣子: 加油!

支持(0) 反对(0) 会长 | 园豆:12463 (专家六级) | 2014-11-05 10:01
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册