高级前端js【Q575】关于 new,判断以下代码输出

关于 new,判断以下代码输出

更多描述

function F () {
 this.a = 3;
 return {
   a: 4;
 }
}
 
const f = new F();
console.log(f.a);

Issue 欢迎在 Gtihub Issue 中回答此问题: Issue 590

Author 回答者: hsk863hh

输出 4 new 操作符,默认返回this对象。如果手动指定返回对象,则new出来的实例指向的是return的对象,而不是this

Author 回答者: shfshanyue

4

Author 回答者: yxw007

function F () {
  this.a = 3;
  return {
    a: 4;
  }
}
 
const f = new F();
console.log(f.a);

返回多了一个分号,报错。去掉分号就是输出4,因为构造函数返回了对象