发新贴  快速回复

搞不来了帮帮我

细磨
2017-07-25 23:35

        function tabNext(id,index,pic, tx, img,text,num ){
                
                id.err= =next;
                
                function next(){
                index++;
                if(index === pic.length){
                    index=0;
                    }
                img.src = pic[index];
                text.innerHTML = tx[index];
                num.innerHTML = (index+1) + "/" +pic.length;
               };
            }

为何把函数next写到外面来(如下)执行tabNext就不行了?

     function tabNext(id,index,pic, tx, img,text,num ){
                
                id.err= =next;
              }

         function next(){
                index++;
                if(index === pic.length){
                    index=0;
                    }
                img.src = pic[index];
                text.innerHTML = tx[index];
                num.innerHTML = (index+1) + "/" +pic.length;
               };

本帖内容针对以下视频发布:

1-多组图片切换的实现封装
细磨

下面这种写法next函数执行时的作用域链是不是全局而不是在tabNext函数中,求老师有空答题

2017-07-26 00:03  回复本帖
强哥

函数外面是无法访问函数里面的变量的。建议你换看下作用域那的相关视频~

2017-07-26 16:25  回复本帖
细磨

谢谢。是说tabNext执行时可以找到外面的next函数,但执行的是全局的(或tabNext外部的next)。要是硬要访问,有什么办法解决问题?

2017-07-28 08:39  回复本帖
细磨

硬要访问,有什么办法解决问题?还得传参

 

2017-07-29 15:38  回复本帖
细磨

强哥 2017-07-26 16:25发表的内容:

函数外面是无法访问函数里面的变量的。建议你换看下作用域那的相关视频~

谢谢老师提示 function tabNext(id,index,pic, tx, img,text,num ){
                
                id.err= =function(){
                    next(id,index,pic, tx, img,text,num);
                    };
              }
     function next(id,index,pic, tx, img,text,num){
            index++;
            if(index === pic.length){
                index=0;
                }
            img.src = pic[index];
            text.innerHTML = tx[index];
            num.innerHTML = (index+1) + "/" +pic.length;
           };不知道行么

2017-07-29 20:22  回复本帖
登录 后才可以发表回复