javascript - 为什么对象 "this"不是全局窗口对象的引用?

标签 javascript

Foo 是从窗口全局对象执行的,如下所示:

  new Foo();   // false why?
  Foo();       // true

 function Foo()
 { 
     alert(this == window); 
 };

但是当我运行这个函数 Foo 代码时,警报消息显示 false,为什么当从全局窗口对象执行 Foo 时会出现这种情况?

最佳答案

这是因为您使用了new。 new 运算符创建一个新对象,将该对象的原型(prototype)设置为 Foo.prototype,然后调用 Foo,并将 this 设置为等于新创建的对象。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/new

关于javascript - 为什么对象 "this"不是全局窗口对象的引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52449324/

相关文章:

javascript - 复制到剪贴板 - 不适用于 FF,Chrome

javascript - Ajax 追加结果并制作动画

php - 使用 vTicker JQuery 时 $ 不是函数错误

javascript - 未捕获错误 : Bootstrap's JavaScript requires jQuery version 1. 12.4 或更高版本,但低于日期时间选择器中的版本 3

javascript - 更改属性

javascript - 登录弹出按钮自动弹出,不会直接进入登录表单

javascript - 为什么 document.write 没有显示结果

javascript - VBA拦截Internet Explorer链接点击

javascript - 转换 node.js 流的简洁方法?

java - 在 Eclipse 中处理 GWT super 源