为了账号安全,请及时绑定邮箱和手机立即绑定

关于闭包封装变量的问题

关于闭包封装变量的问题

神不在的星期二 2019-02-25 12:59:54
这个是闭包封装变量的例子:function isFirstLoad (){    //查询是否是第一次输入函数        debugger;        var _list = [];        return function (id){            if(_list.indexOf(id) >= 0){                    return false;            }else{                _list.push(id);                return true;            }        };    }var firstLoad = isFirstLoad();    console.log(firstLoad(10));        console.log(firstLoad(10));    console.log(firstLoad(20));不明白_list为什么是私有的,firstLoad(10)在传参的时候直接进到了function (id)吗?为啥不是进到isFirstLoad ()啊,所以也不明白为什么可以传进来参数我按照我以前的思路改成了这个,就不能实现函数的功能了,也不懂其中的原因:function isFirstLoad (id){        // debugger;        var _list = [];        if(_list.indexOf(id) >= 0){            return false;        }else{            _list.push(id);            return true;        }    }    //使用    console.log(isFirstLoad(10));    console.log(isFirstLoad(10));    console.log(isFirstLoad(20));这样的话,全是ture,并不是很懂为什么不起作用
查看完整描述

2 回答

?
慕妹3242003

TA贡献1824条经验 获得超6个赞

isFirstLoad返回的是function (id){},又有如下代码

var firstLoad = isFirstLoad();

因此firstLoad就是function (id){}


查看完整回答
反对 回复 2019-03-05
  • 2 回答
  • 0 关注
  • 548 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信