關於畢包問題

来源:16-10 作用域和闭包--解题

阿倫

2019-11-06

老師,我還沒能理解必包的使用場景!?
關於_list 變數的封裝性,不是寫在函數裡就可以達到嗎,不大懂為什麼要回傳函數

function isFirstLoad(id) {
    var _list = [];
    if(_list.indexOf(id)>=0 ) {
        return false
    }else{
        _list.push(id);
        return true;
    }
}
写回答

2回答

双越

2019-11-06

你的代码,和视频中的代码,最大的区别在于:_list 这个变量的作用域(即控制权)。视频中的代码,_list 是放在一个工厂函数的闭包中的,而你的 _list 直接暴露在了判断业务逻辑的代码中。

你说实现功能,那肯定能实现。你就是不用函数,直接把函数里面的代码暴露出来也可以实现。但是不同的实现有不同的用意,不同的设计思路。

0
2
阿倫
非常感谢!
2019-11-06
共2条回复

双越

2019-11-06

可以试着把你的想法用代码写出来,然后我帮你分析一下。

0
1
阿倫
老師,我上面貼的代碼是沒有回傳函數的版本
2019-11-06
共1条回复

BAT大牛带你横扫初级前端JavaScript面试(第二版)

BAT高级前端工程师亲授,结合真实面试题,提高面试成功几率

4268 学习 · 817 问题

查看课程