gpt4 book ai didi

javascript - Javascript 全局变量存储在什么对象中?

转载 作者:可可西里 更新时间:2023-11-01 01:20:58 25 4
gpt4 key购买 nike

全局变量是否存储在特定对象中?例如:

var test="stuff";
console.log(window.test);
console.log(document.test);
console.log(this.test);

所有这三个测试的结果都是 undefined,那么是否有一个对象保存这些变量?

我觉得这是我应该知道的愚蠢的事情,但我什至无法在网上找到答案。

最佳答案

这是一个迟到但技术性的答案。

你问

Are global variables stored in specific object?

答案是肯定的;它们存储在官方称为全局对象的东西中。此对象在 official ECMAScript 5 Specification 的第 15.1 节中进行了描述。 .

全局对象不需要有名字;但是您可以通过使用它们的名称来引用它的属性,例如 StringisNaNDate。除了 ECMAScript 规范要求的属性外,您的 JavaScript 宿主环境还将在全局对象中放置其他属性,例如 alertconsole。在浏览器中,我可以编写脚本

alert("Hello world");

因为 alert 是全局对象的一个​​属性。

请注意,信不信由你,根本不必有办法访问这个全局对象。然而,很酷的是,许多宿主环境会在全局对象中放置一个属性,其值是对全局对象本身的引用。在大多数 Web 浏览器中,此属性称为 window。所以我们可以这样写:

alert("Hello");
window.alert("Hello");
window.window.alert("Hello");
window.window.window.window.window.alert("Hello");

你也可以说:

var x = 5;
alert(this.x);

并得到 5 警报。

关于javascript - Javascript 全局变量存储在什么对象中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11572966/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com