简单理解就是 ,一个作用域可以访问另外一个函数内部的局部变量
闭包的形成,就是在一个函数中返回一个子函数,在子函数中使用父函数的变量,在全局中调用子函数。
// 闭包应用-计算打车价格
// 打车起步价13(3公里内), 之后每多一公里增加 5块钱. 用户输入公里数就可以计算打车价格
// 如果有拥堵情况,总价格多收取10块钱拥堵费
var car = (function() {
var start = 13; //起步价
var total = 0; //总价
return {
//这里形参表示为 n
pirce: function(n) {
if (n <= 3) {
total = start;
} else {
total = (n - 3) * 5 + start;
}
return total;
},
yd: function(flag) {
return flag ? total + 10 : total;
//返回值 如果为true的话就是拥堵 价格加10元 否则 返回总价格
}
}
})();
console.log(car.pirce(6)); //6是实参
console.log(car.yd(true));