Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 强制具有变量的对象属性重新计算值_Javascript_Jquery_Object_Dom_Audio - Fatal编程技术网

Javascript 强制具有变量的对象属性重新计算值

Javascript 强制具有变量的对象属性重新计算值,javascript,jquery,object,dom,audio,Javascript,Jquery,Object,Dom,Audio,我有一个对象,它的属性是通过Howler.js库加载声音样本 样本路径的一部分是通过模式变量确定的,该变量可以是A、B、C等所有有效文件夹,其中包含名称相同但声音略有不同的声音样本 var mode = "A"; $("html").on("keydown", function(e){ if(e.keyCode === 32) { switch (mode) { case "A": mode = "B";

我有一个对象,它的属性是通过Howler.js库加载声音样本

样本路径的一部分是通过模式变量确定的,该变量可以是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"]
               })
};
通过按键,我将模式变量更改为下一个字母。 但是,播放的声音是生成的原始声音

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


我在主dictionary对象中有多个这样的对象和属性。有没有一种方法可以在不手动循环的情况下更新属性?

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

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

var dictionary = {
    coolSound: {
        sound: function (mode) {
            return new Howl({src: ["sounds/" + mode + "/bubbles.mp3"]});
        }
    }
}
然后,在keydown处理程序中,您可以执行以下操作:

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

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

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

var dictionary = {
    coolSound: {
        sound: function (mode) {
            return new Howl({src: ["sounds/" + mode + "/bubbles.mp3"]});
        }
    }
}
然后,在keydown处理程序中,您可以执行以下操作:

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

你能把密码贴在你叫按键改变模式的地方吗?“我想我只是少了一点时间来破解这个。”凯文补充道,谢谢!你能把密码贴在你叫按键改变模式的地方吗?“我想我只是少了一点时间来破解这个。”凯文补充道,谢谢!