构造器调用中this指向新创建的实例对象且默认隐式返回该实例;仅当显式return引用类型时才覆盖默认返回,箭头函数不可用作构造器。

在构造器调用中,this 指向新创建的实例对象,且函数会隐式返回该实例(除非显式返回一个非 null 的对象)。
构造器调用的 this 绑定规则
当函数通过 new 关键字调用时:
- JavaScript 引擎自动创建一个空对象,并将
this绑定到这个新对象上; - 函数体内的属性和方法通过
this.xxx = ...赋值,实际是添加到新实例上; - 若函数体内没有
return语句,或只返回原始值(如return 42、return "hello"),则忽略返回值,仍返回新实例; - 仅当显式
return一个对象类型(包括数组、函数、正则等引用类型)时,才覆盖默认返回值。
隐式返回的实际表现
看这个例子:
Java Maven 项目审查工作流的通用输入处理。当 Java Maven 项目以 ZIP压缩包或 GitLab 仓库 URL 形式提供且需要...时使用。
function Person(name) {
this.name = name;
this.say = function() { return `Hi, I'm ${this.name}`; };
// 没有 return,或 return 123 / undefined / null → 都不影响结果
}
const p = new Person("Alice");
console.log(p.name); // "Alice"
console.log(p.say()); // "Hi, I'm Alice"
console.log(p instanceof Person); // true
这里 p 就是 new Person(...) 隐式返回的实例,this 在内部始终指向它。
显式 return 对隐式返回的影响
只有返回对象才“生效”:
-
return {}、return []、return new Date()→ 返回该对象,p instanceof Person变为false; -
return null、return undefined、return 100、return "str"→ 仍返回新实例,和没写 return 一样。
箭头函数不能用作构造器
箭头函数没有自己的 this,也不支持 new 调用。尝试 new (() => {}) 会直接抛出 TypeError。所以构造逻辑必须用传统函数声明或函数表达式。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










