JavaScript高级编程中,闭包的this对象,为什么函数赋值后再调用,this指针指向window?

很白的小白
  • 131
  var identity = 'The Window';
  let object = {
    identity: 'My Object',
    getIdentity() {
      return this.identity;
    }
  };
  console.log((object.getIdentity = object.getIdentity)());//The Window

虽然实际项目中不太可能用到,但是看到了不是很理解,想搞清楚,还望各位不吝赐教!

回复
阅读 515
1 个回答
Zxc321
  • 37
✓ 已被采纳

JS标准里规定语句 “a=100” 的返回值是100.
这里语句

object.getIdentity = object.getIdentity

返回值是object.getIdentity对应的匿名函数, 而不是object.getIdentity, 匿名函数this默认指向window, 所以打印的是The Window

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏