为什么在函数中定义属性时未定义属性?

时间:2016-12-07 01:37:13

标签: javascript

我有一个带有多个按钮的页面,每个按钮都与加载功能相关联,用于打开一个新窗口,然后将其自定义为在页面加载后单击的按钮。 我一直在将选项存储在对象中,并在JList下使用了一个选项。但是,一旦页面加载,显示的文字会显示currentTile,但我还没有在undefined中定义currentTile吗?

load()
在html中正如这样调用

function tile(question, answer, points) { this.question = question; this.answer = answer; this.points = points; } var currentTile = {}; var testTile = new tile("How are you?", "Fine", 200); function load(tile) { currentTile = tile; window.open("question.html", "_self"); } function setText() { document.getElementById("qSlot").innerHTML = currentTile.question; document.getElementById("value").innerHTML = "" + currentTile.points + ""; } :     load()

提前致谢。

1 个答案:

答案 0 :(得分:1)

您使用的window.open("question.html", "_self");与重新加载页面一样好(假设您当前的页面为question.html)。因此,当页面重新加载时,您的JS代码将重新执行,包括语句var currentTile = {};。这就是undefinedcurrentTile.question获得currentTile.points的原因。

而不是直接调用window.open("question.html", "_self");来调用setText(),而是会正确显示文字。 (你现在在哪里打电话给setText()?)。