function ccd(y){
var x=y;
return function(){
console.log(x++);
console.log(y--);
}
};
ccd(5)();// "5" "5"
ccd(5)();// "5" "5"
ccd(5)();// "5" "5"
function bdc(y){
var x=y;
return function(){
console.log(x++);
console.log(y--);
}
}(5);
bdc();// "5" "5"
bdc();// "6" "4"
bdc();// "7" "3"
为什么上面两个方法,执行的结果不一样
具体可以看一下 js 的闭包~
第一个是普通的函数执行,每次执行xy都是5,传入的值,x=y执行了三次
第二个是函数闭包x++,y- -都是操作同一个值。
x=y赋值只执行一次