ybdt1201
ybdt1201
采纳率85.1%
2016-11-26 03:39 阅读 823

求教大神关于js的问题

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"

为什么上面两个方法,执行的结果不一样

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

2条回答 默认 最新

  • qq_29594393 当作看不见 2016-11-26 04:42

    第一个是普通的函数执行,每次执行xy都是5,传入的值,x=y执行了三次
    第二个是函数闭包x++,y- -都是操作同一个值。
    x=y赋值只执行一次

    点赞 2 评论 复制链接分享
  • sunny_desmond carrykingdow 2016-11-26 04:39

    具体可以看一下 js 的闭包~

    点赞 评论 复制链接分享

相关推荐