<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>变量升级</title> </head> <body> <input type="text" id="clock"> <script language=javascript> window.onload = function () { var init = function () { document.getElementById("clock").value = "GG"; } } </script> <button οnclick="init()">GG</button> </body> </html>
在上面的代码中给button绑定了一个局部定义的函数,所以点击button不会触发init()函数,那么我们来对JavaScript文件进行如下的更改
<script language=javascript> window.onload = function () { init = function () { document.getElementById("clock").value = "GG"; } } </script>
我们只是把init方法前的var申明给去掉了,再点击上面的button发现好使了,说明init就变成了全局变量,这就是在局部函数中定义一个全局函数,也就是局部变量的升级