javascript – 搞不清楚的 setTimeout 括號夾帶參數問題

一般情況下,setTimeout (函數名稱, 時間);
如果要執行的函數需要傳值進去,需要使用匿名函數如:
setTimeout  ( function(){  //要執行的函數名稱放在這裡  }, 時間);

範例:
要執行 run() 就使用 => setTimeout(  run, 1000  ) ;
要執行 run('abcd')  就使用 => setTimeout(  function(){    fun('abcd')    }, 1000  );

 
網友的註釋(from 
http://topic.csdn.net/u/20120517/14/db737c66-a409-4966-8317-24341a11340c.html?seed=324595260&r=78594164 ):

setTimeout(function(){a2('sss1')},3000); //傳遞一個js函數供定時器執行
setTimeout("a2('sss2')",5000); //直接傳遞js語句供定時器執行;
setTimeout("a2();alert('123');",5000);//這也是合法的,第二種方式和這個是一個道理也就是說setTimeOut第一個參數可以有兩種類…… 

發表迴響