Re: [閒聊] JS大師請進

作者: eight0 (欸XD)   2024-04-07 23:47:40
※ 引述《surimodo (搖滾少女!! 活力棉花糖!!)》之銘言:
: 一般來說
: 是推薦在function裡面寫function
: 還是把function獨立出來
: $(document).ready(function(){
: function myFunction() {
: console.log("初始化成功!");
: }
: myFunction();
: });
: 類似這樣
: myFunction寫裡面還是外面
1. 編輯器支援問題
根據編輯器的支援程度,有的只會列出最外面的函式/關鍵字
那就可以根據這函式是否該被列出,來決定放哪
2. Closure memory leak 問題
若你的 scope 中有 closure,而且定義的函式有被 reference
那該函式就算沒有被使用也會導致無法回收,進而佔用更多記憶體
所以若打算建立 closure,可以考慮哪些變數放 closure 裡或外
3. 函式是否有 side effect
原則上,pure function 的效能都比 closure 更好
也就是沒需要的話,就放外面
4. 模組結構
現在大部份的環境都支援多檔案、import 或 require 模組
因此即使把函式定義在外面也是定在 module scope 中
但若是在很老的環境裡,定在外面會造成 pollution
那放在裡面,或是使用特定的 namespace 機制就會更好
5. callback 與短函式
若只是單純的 arrow function,那額外拉出去也不會增加可讀性
若只是定義 callback,根據函式的行數,額外拉出去也不一定會更好讀
6. 縮排
在函式裡定義函式就會增加一次縮排,看自己能接受到哪吧
作者: wwndbk (黑人問號)   2024-04-07 23:51:00
大師

Links booklink

Contact Us: admin [ a t ] ucptt.com