js 匿名函数的形参改变影响的对象的属性?

标题不知该如何表达(⊙﹏⊙)

https://img.mukewang.com/5bd5422c0001a05001180277.jpg

数组莫名变这么多位

handleStrip1: function(strip,num) {

                var i = 0, self = this , len = strip.length;

                strip.push(self.duration)  //在这添加的

                if(!(len>0))return;

                for (i; i < len; i++) {

                    console.log("当前的sum = "+strip[i]);

                    if(strip[i]>num){

                        return +i;

                    }

                }

            }

handleStrip1函数(被setInterval方法每50毫秒调用),第一个参数strip传的的是这个对象的属性,匿名函数中的变量不是函数运行结束后就销毁了吗,为什么会影响到这个对象的属性呢?

function AA() {

   this.strip = data;

}

AA.prototype = {

   init : function() {

       var self = this;

       self.timer = setInterval(self.run.bind(self), 50);

   },

   run : function() {

       var self = this;

       self.curStrip = self.handleStrip1(self.strip,(self.Audio.currentTime).toFixed(2));

  }

};


慕莱坞森
浏览 434回答 1
1回答

开满天机

因为&nbsp;strip&nbsp;是按引用传递的,所以你一直在对同一个&nbsp;strip&nbsp;进行 push 操作。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript