window.onload = writeMessage; //不能有(); function writeMessage() { // body... document.getElementById("hello").innerHTML="hello,world"; }
第一行,writeMessage函数后面为什么不能加括号呢?莫非引用的时候不能加?
有括号表示执行,如果加了的话,相当于你给onload设置的不是一个函数,而是writeMessage的返回值。js中,函数的默认返回值为undefind
秒醒~
拜谢~
@夜之圣子: :)
其实换个写法就能理解,我对JS不是很熟悉,但是以下代码应该可以解释这个现象:
window.onload = writeMessage; //不能有(); var writeMessage = function() { // body... document.getElementById("hello").innerHTML="hello,world"; }
Function是一个特殊的对象,创建一个函数和创建一个普通的变量是一样的,你那种创建函数的写法可能是简写模式。
唔……试过了,这不是简写,不过还是谢谢~~
@夜之圣子: 你确定?我觉得就是简写,呵呵
@会长: 嗯,虽然没学完,不敢拍胸脯保证,但是我翻过了整本书,在相同的用法上都是这么用的,没发现别的写法。function本身的意思就是“创建函数”……
@夜之圣子: 加油!