这个是闭包封装变量的例子: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){}
添加回答
举报
0/150
提交
取消