Javascript 如何从另一个函数调用正在使用window.onload的函数
当用户单击一个调用myFunction的按钮时,我尝试再次使用questionFunction(),但我得到一个错误“questionFunction未定义”Javascript 如何从另一个函数调用正在使用window.onload的函数,javascript,function,return,Javascript,Function,Return,当用户单击一个调用myFunction的按钮时,我尝试再次使用questionFunction(),但我得到一个错误“questionFunction未定义” window.onload = function questionFunction() { var questionText = document.getElementById("question").innerHTML = randomNumber1 + " " + operationArray[randomOperation1]
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
中那样调用它
function questionFunction() {
var questionText = document.getElementById("question").innerHTML = randomNumber1 + " " + operationArray[randomOperation1] + " " + randomNumber2 + " " + operationArray[randomOperation2] + " " + randomNumber3;
}
window.onload = questionFunction;
function myFunction() {
return questionFunction();
}
这会奏效的。
由于函数作用域错误,导致出现错误
您可以在此处阅读:
只需声明QuestionFunction,并在需要的地方重用此函数
function questionFunction() {
var questionText = document.getElementById("question").innerHTML = randomNumber1 + " " + operationArray[randomOperation1] + " " + randomNumber2 + " " + operationArray[randomOperation2] + " " + randomNumber3;
}
window.onload = questionFunction;
function myFunction() {
return questionFunction();
}