一旦用户单击调用myFunction的按钮,我将尝试再次使用questionFunction((,但我收到一个错误"questionFunction未定义">
window.onload = function questionFunction() {
var questionText = document.getElementById("question").innerHTML = randomNumber1 + " " + operationArray[randomOperation1] + " " + randomNumber2 + " " + operationArray[randomOperation2] + " " + randomNumber3;
}
function myFunction() {
return questionFunction();
}
我不希望在加载时更改文本,也不希望在用户单击调用myFunction((时再次更改文本
您会得到这个错误,因为函数表达式没有将函数的标识符添加到它出现的范围中(只有函数声明可以做到这一点(。
简单的答案是将其作为函数声明:
function questionFunction() {
var questionText = document.getElementById("question").innerHTML = randomNumber1 + " " + operationArray[randomOperation1] + " " + randomNumber2 + " " + operationArray[randomOperation2] + " " + randomNumber3;
}
window.onload = questionFunction;
由于这为函数添加了一个标识符,现在您可以像在myFunction
中那样调用它。
只需声明questionFuntion,并在需要的地方重用此函数
function questionFunction() {
var questionText = document.getElementById("question").innerHTML = randomNumber1 + " " + operationArray[randomOperation1] + " " + randomNumber2 + " " + operationArray[randomOperation2] + " " + randomNumber3;
}
window.onload = questionFunction;
function myFunction() {
return questionFunction();
}
function questionFunction() {
var questionText = document.getElementById("question").innerHTML = randomNumber1 + " " + operationArray[randomOperation1] + " " + randomNumber2 + " " + operationArray[randomOperation2] + " " + randomNumber3;
}
window.onload = questionFunction;
function myFunction() {
return questionFunction();
}
这会奏效的。由于函数作用域错误,导致出现错误。
你可以在这里阅读:
https://javascriptweblog.wordpress.com/2010/07/06/function-declarations-vs-function-expressions/