javascript对象方法递归调用

时间:2017-09-07 14:50:36

标签: javascript recursion bind

我的问题与播放功能有关。如何以递归方式调用此SPOTIPY_REDIRECT_URL方法? Player.play()无效。

Using this.player.play()

2 个答案:

答案 0 :(得分:1)

首先,你的语法是函数和类的集合,你可以使用类:

 class Player {
   constructor(links,element){
     this.images = links;
     this.position = 0;
     this.element = element;
   }
   //...
}

然后您可以设置一个显示一个又一个图像的间隔:

next(){
 this.element.src =  this.images[
    this.position = (this.position + 1) % this.images.length
 ];
}

play(){
 if(!this.interval) this.interval = setInterval(_=>this.next(),1000);
}
stop(){
  clearInterval(this.interval);
  this.interval = null;
}

现在你可以做到:

 var player = new Player(
   ["1.jpg","2.jpg","3.jpg"],
   document.getElementById("img")
 );

 document
   .getElementById("play-btn")
   .addEventListener("click", _=>player.play());

答案 1 :(得分:0)

如果你想做递归,应该有一个停止条件。

import pandas as pd dat = p.read_csv('filename.csv') dat = dat[dat <50] = 50 不正确。应该是this.player.play()