You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何window.this返回undefined而window.window返回window对象?

为什么window.this返回undefined,而window.window返回window对象?

先看代码实际运行结果:

let x = this.window;
let y = window.window;
let z = window.this;

console.log(x); // 输出 window 对象
console.log(y); // 输出 window 对象
console.log(z); // 输出 undefined

核心原因拆解:

  • 关于window.window:
    浏览器环境中,window是全局顶层对象,浏览器特意给它添加了一个同名属性window,这个属性的取值就是window对象本身。所以访问window.window时,本质是读取它自身挂载的这个属性,结果自然是window对象。

  • 关于window.this:
    this是JS的关键字,不是对象的属性。它的指向只和当前执行上下文有关,不属于任何对象的固有属性。当你写window.this时,是在尝试访问window对象上名为this的属性——但window对象根本没有这个属性,所以返回undefined。

  • 补充:为什么this.window和window.window结果一致:
    在全局作用域下,this的指向就是window对象,所以this.window等价于window.window,最终也返回window对象。


内容的提问来源于stack exchange,提问作者Lokendra Verma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 20:15:45