繁体   English   中英

无法理解JavaScript中的某些概念

[英]Unable to understand certain concepts in JavaScript

网站上给出了以下几行:

您的全局变量(或函数)可以覆盖窗口变量(或函数)。 任何函数,包括窗口对象,都可以覆盖全局变量和函数。

我不明白这是什么意思。

在该段上方,您可以找到以下内容:

HTML中的全局变量使用JavaScript,全局范围就是完整的JavaScript环境。

在HTML中,全局范围是window对象。 所有全局变量都属于window对象。

结合问题中的引号-这意味着由于全局范围实际上是window对象-可以覆盖全局函数/变量。

这是一个例子:

 console.log(window.Math.PI); Math = { PI: 5 } console.log(Math.PI); 

浏览器将某些“全局”(即,在任何文件中的任何位置均可访问)函数和变量放在window对象上。 这样的例子就是window.setTimeout函数,它在给定的延迟后执行其参数。

您也可以访问这些全局window.*变量,而根本没有窗口前缀,即

window.setTimeout === setTimeout

也就是说,如果您为名称冲突的全局变量赋值,则可以“覆盖”浏览器的默认设置-

window.setTimeout === setTimeout
setTimeout = 'myString'
window.setTimeout === 'myString'

这就是为什么通常最好的做法是不要在global( window )范围内创建变量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM