<html>
<head>
<script>
function myFunction(){
alert(input);
}
window.onload = function(){
var input = "hello";
myFunction();
}
</script>
</head>
<body>
</body>
</html>
这是我的代码,为什么它不会提醒hello
?
答案 0 :(得分:0)
问题是input
中的myFunction
是指全局变量,但input
中的onload
是局部变量。
尝试将输入作为参数传递给myFunction
:
function myFunction(input){
alert(input);
}
window.onload = function(){
var input = "hello";
myFunction(input);
}
或者将input
声明为全局变量,并从事件处理程序中删除var
:
var input;
function myFunction(){
alert();
}
window.onload = function(){
input = "hello";
myFunction();
}
请注意,在这些函数之外声明input
是不必要的(严格模式除外),但这通常是一种很好的做法。
答案 1 :(得分:0)
输入不是全局变量,您无法通过其他函数访问它,其范围限定为绑定到onload事件的匿名函数。
如果你想要访问它,就像它是一个设置,你必须在任何函数之外声明它,或者你必须声明它没有var OR你必须用window.input声明它。在任何情况下,我都不会建议您使用上述任何功能,除非该变量实际上应该在您的所有应用程序中共享。
答案 2 :(得分:0)
输入范围仅限于window.load函数()
如果要从多个函数访问输入,请将其作为全局变量。
<script>
var input = "";
function myFunction(){
alert(input);
}
window.onload = function(){
input = "hello";
myFunction();
}
</script>
或将输入作为参数传递给函数
<script>
function myFunction(var input){
alert(input);
}
window.onload = function(){
var input = "hello";
myFunction(input);
}
</script>
答案 3 :(得分:0)
使其“工作”的一种方法尚未提及,同时具有onload
方法的变量和函数部分:
window.onload = function(){
var input = "hello";
function myFunction(){
alert(input);
}
myFunction();
}