Google Chrome中的JavaScript变量范围

JavaScript variable scope in Google Chrome

本文关键字:变量 范围 JavaScript 中的 Chrome Google      更新时间:2023-09-26

我得到了以下代码:

<!DOCTYPE html>
<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Untitled 1</title>
</head>
<body>
<p id="p"></p>
<script>
var top = 9;
( function () {  top += 1;  document.getElementById( "p" ).innerHTML = top;  } )()
</script>
</body>
</html>

它在Internet Explorer中运行良好(打印10),但在Google Chrome中打印[对象窗口]。但如果我这样改:

( function () {  var top = 9; top += 1; document.getElementById( "p" ).innerHTML = top; } )()

它在Chrome中也很好用。唯一的变化是该变量现在是局部的。这是否意味着在Chrome中我无法访问全局变量?无论我做什么,我都不能得到正确的结果。。

更改变量名,因为它与Window.top全局对象冲突。请参阅MDN文档页面