gpt4 book ai didi

javascript - 强制带有变量的对象属性重新计算值

转载 作者:行者123 更新时间:2023-11-28 04:25:27 25 4
gpt4 key购买 nike

我有一个对象,其属性可通过 Howler.js 库加载声音样本。

样本的部分路径是通过mode变量确定的,可以是A、B、C等,都是有效的文件夹,包含名称相同但声音略有不同的声音样本。

var mode = "A";
$("html").on("keydown", function(e){
if(e.keyCode === 32) {
switch (mode) {
case "A":
mode = "B";
break;
case "B":
mode = "C";
break;
.
.
.
default:
mode = "A";
}
}

dict["coolSound"].sound.play();
});



// Seperate file
var dictionary = {
coolSound: {
sound: new Howl({
src: ["sounds/" + mode + "/bubbles.mp3"]
})
};

通过按键,我将模式变量更改为下一个字母。但是,播放的声音是生成的原始声音。

我尝试让它调用一个设置声音的函数,但这也不起作用。

我在主字典对象中有多个像这样的对象和属性。有没有办法在不手动循环的情况下更新属性?

最佳答案

不,您在代码开头设置的属性只是一个字符串,它不记得它是由字符串、变量和字符串组成的。

您可以做的是使用函数而不是字符串值。例如:

var dictionary = {
coolSound: {
sound: function (mode) {
return new Howl({src: ["sounds/" + mode + "/bubbles.mp3"]});
}
}
}

然后,在您的 keydown 处理程序中您可以执行以下操作:

dict["coolSound"].sound(mode).play();

关于javascript - 强制带有变量的对象属性重新计算值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45110806/

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