关于 new,判断以下代码输出
更多描述
function F () {
this.a = 3;
return {
a: 4;
}
}
const f = new F();
console.log(f.a);
Issue 欢迎在 Gtihub Issue 中回答此问题: Issue 590 (opens in a new tab)
Author 回答者: hsk863hh (opens in a new tab)
输出 4 new 操作符,默认返回this对象。如果手动指定返回对象,则new出来的实例指向的是return的对象,而不是this
Author 回答者: shfshanyue (opens in a new tab)
4
Author 回答者: yxw007 (opens in a new tab)
function F () { this.a = 3; return { a: 4; } } const f = new F(); console.log(f.a);
返回多了一个分号,报错。去掉分号就是输出4,因为构造函数返回了对象