请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

老师您好,麻烦问下如何将闭包函数修改为普通函数,修改后会有性能优化吗?

例如课中的例子

// 函数作为返回值
function create() {
    const a = 100;
    return function () {
        console.log(a);
    }
}

const fn = create();
const a = 200;
fn(); // 100

正在回答

2回答

没明白你的意思。函数就是函数,没有“闭包函数”这一说,都是普通函数。

要不然,你把 create 函数去掉,直接让 a 裸露为全局变量?这样可以吗?

0 回复 有任何疑惑可以回复我~
  • 提问者 慕码人4891316 #1
    Sorry,我没表达清楚我的意思,后来我又仔细的想了想。
    我的问题是:
    1.由于闭包的使用可能会产生内存的大量占用,那么如何消除闭包才能避免这种情况呢?
    2.有没有通用的方法?或者是需要针对不同的场景特定修改?
    回复 有任何疑惑可以回复我~ 2020-08-02 10:39:13
  • 双越 回复 提问者 慕码人4891316 #2
    闭包会产生内存占用,这是现象。但为啥你要用闭包呢?不用闭包不行吗?—— 那肯定是不行,用闭包肯定是需求和设计决定的。所以,最终是需求决定的内存占用。
    
    所以,没有啥通用的方法,能满足:既完成需求、又不占用内存。没有。
    回复 有任何疑惑可以回复我~ 2020-08-02 13:51:00
  • 提问者 慕码人4891316 回复 双越 #3
    OK,谢谢老师~
    回复 有任何疑惑可以回复我~ 2020-08-02 15:28:51
Best_Coder_LCN 2021-05-12 11:42:01

就是有的需求不用闭包实现不了,所以才有闭包。

也就不存在把闭包改成不用闭包的情况

2 回复 有任何疑惑可以回复我~
  • 双越 #1
    说到点子上了
    回复 有任何疑惑可以回复我~ 2021-05-12 16:31:22
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信