function hoisting是什麼?
一個不說你也不會知道的js語言特性,是指js看到function xxx(){}這種宣告時會把定義搬到scope最頂端 的行為,hoisting的意思是提昇。
自從在Javascript Patterns這本書上面看到hoisting的時候,就一直在想到底有什麼場合可以用到這個奇妙的語言特性?想不到還真的遇到了,雖然其實是個反例XD
原文出自PTT Web_Design版「[問題] jQuery 參數的問題~」,這名網友問為什麼下面的js不能用?
1 2 3 4 |
|
好傻好天真?
雖然不知道為什麼提問者堅持要把函數宣告放在用它之前,不過既然他問了,剛好這情況可以利用function hoisting來做,只是要修改一些小地方。
1 2 3 4 5 |
|
我另外寫了一個jsfiddle來測試:
做的到,只不過真的有必要嗎?
真的有太多理由不建議這樣做。原po在我回文後也沒出現,看來也無從得知他這樣做的理由了。