gpt4 book ai didi

javascript 递归调用对象方法

转载 作者:行者123 更新时间:2023-12-03 03:31:04 25 4
gpt4 key购买 nike

我的问题与播放功能有关。我怎么称呼这个Player.play()方法递归调用? Using this.player.play()不管用。

function Player(playlist){
open:function(){
//doing some stuff here
}
play:function(){
if(picture){
//document.getElementById("img").src =playlist[n]

}

}
}
var player = new Player([link1, link2, link3]);
document.getElementById("play-btn").addEventListener("click", player.play())

最佳答案

首先,您的语法是函数和类的组合,您可以使用如下类:

 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());

关于javascript 递归调用对象方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46099388/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com