我正在尝试使用没有全局变量的windows.load.
HTML代码:
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>Test</title>
<link rel="stylesheet" href="main.css">
<script type="text/javascript" src="script.js"></script>
</head>
<body>
<form>
Name: <input type="text" id="txt1"><br><br>
<input type="button" value="Check Input" id="b1">
</form>
</body>
</html>Run Code Online (Sandbox Code Playgroud)
JavaScript全局变量代码:
/*jslint browser: true*/
var myButton;
window.onload = function () {
"use strict";
myButton = document.getElementById("b1");
myButton.addEventListener("click",alertMM);
};
function alertMM() {
"use strict";
window.console.log(myButton.value);
}Run Code Online (Sandbox Code Playgroud)
最后没有全局变量代码的NOT WORKING:
/*jslint browser: true*/
var myNS = {
myButton: undefined,
//
setUp: function () {
"use strict";
myNS.myButton = document.getElementById("b1");
myNS.myButton.addEventListener("click", alertMM);
}
};
window.onload = myNS.setUp();
function alertMM() {
"use strict";
window.console.log(myNS.myButton.value);
}Run Code Online (Sandbox Code Playgroud)
我想停止使用全局变量的原因是我担心它会与未来的代码冲突.
提前致谢
阿德里安
在:
window.onload = myNS.setUp();
Run Code Online (Sandbox Code Playgroud)
当你定义window.onload回调时,你应该为它自己分配函数(只是myNS.setUp),以便稍后调用它.你的代码所做的是立即调用函数并分配结果.