这个是闭包封装变量的例子:
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,并不是很懂为什么不起作用
慕妹3242003
相关分类