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