javascript - 从根本上说,为什么函数声明的“this”绑定的执行上下文设置为全局对象?
问题描述
似乎无法理解这一点。
我试图推理的解释:
函数声明(如 var 声明)绑定到全局对象环境记录 (OER)。
全局 OER 与全局对象同步。
全局对象具有作为属性的功能。
因此,该函数通过 globalObj.function 隐式调用(并且调用确定了“this”)
解决方案
不,这与作为全局对象的“属性”的函数无关(尽管从历史上看,它可能是灵感,我不知道)。
函数中的this
值是在函数调用期间在OrdinaryCallBindThis过程中设置的,您所引用的行为取决于严格模式。在草率模式下,如果ThisArgument是undefined
or null
(这是普通someFunction()
调用的情况),它将使用全局对象(或更准确地说,GlobalThisValue)。
推荐阅读
- c++ - 使用 XOR 操作仅使用 2 个指针来反转链表
- asp.net - 无法在命名空间中引用其中的类库 ado.net 实体数据模型 .edmx 在 asp.net Web 应用程序 webapi
- javascript - 通过单击另一个按钮来触发 JavaScript 按钮
- ios - 将完整的编程自定义视图添加到 ViewController。自动布局问题
- python - 400 错误请求:KeyError:“文件”
- python - 如何通过 selenium 仅针对 Python 中的当前 Chrome 会话按下键盘按钮
- chocolatey - Chocolatey 问题 - 创建 Powershell 脚本的 zip 包?
- python - 如何将 PDF 转换为 opencv-python 可读的图像?
- node.js - Telegram 机器人可以在单个消息触发器上返回多条消息吗?
- javascript - 我正在尝试编写一个程序,其中球忽略击中绿色障碍,但当红色障碍表示游戏结束时结束游戏