用作参数的Javascript对象变为未定义

时间:2016-01-17 17:17:17

标签: javascript jquery

我正在使用JavaScript和jQuery设计一个基于网络的“选择你自己的冒险”游戏,并且遇到了我的一个功能问题。基本结构是这样的:

//leftSide, rightSide, thirdOption defined up here

var exampleScene = {
    sceneText: "<p>Some narrative text</p>",
    optionNames: ["Go Left", "Go Right", "A Third Option"],
    linkedScenes: [leftSide, rightSide, thirdOption]
};

function fillBox (scene) {
    $("#textBox > *").remove();
    $("#textBox").append($.parseHTML(scene.sceneText));
    promptPlayer(scene);
}

function promptPlayer (scene) {
    for (i = 0; i < scene.linkedScenes.length; i++) {
        $("#input > ol").append("<li></li>");
        $("#input > ol > li").last().text(scene.optionNames[i]);
        $("#input > ol > li").last().click(function () {
            fillBox(scene.linkedScenes[i]);
        });
    }
}

这个想法是显示一个&#34;场景&#34;输出区域中的对象,并在输入区域中生成可单击选项。选项的信息来自&#34;场景&#34;的linkScenes属性。宾语。但是,当它用作fillBox函数中的参数时,对linkedScene属性的引用将变为未定义。

我已经使用console.log()验证了它是否在promptPlayer函数中定义。我也试过将scene.linkedScenes [i]推入一个全局数组并使用其索引作为参数,但这也变得不确定。

我真的被困在这里,任何帮助都将不胜感激。我仍然在学习JavaScript和jQuery,所以任何有助于在将来自行解决这些问题的资源链接也将不胜感激。谢谢!

0 个答案:

没有答案