new绑定是this绑定中优先级最高的规则,执行new Foo()时自动创建新对象并将其设为this,构造函数内this即指向该实例,箭头函数不支持new绑定。

在 JavaScript 中,new 绑定是 this 绑定规则中优先级最高的一种。当你用 new 调用一个函数时,JavaScript 引擎会自动执行四步操作,其中关键一步就是:**创建一个新对象,并将该对象绑定为函数调用时的 this**。
new 绑定的核心机制
当执行 new Foo() 时,引擎内部会:
- 创建一个全新的空对象(即实例)
- 将这个新对象的
[[Prototype]]指向Foo.prototype - 以这个新对象为
this,调用Foo函数(即执行构造逻辑) - 若
Foo显式返回一个对象,则返回该对象;否则返回新创建的对象
构造函数内 this 就是新实例
你不需要手动“设置” this —— 它由 new 自动绑定。在函数体内部,this 直接指向正在被构建的那个新对象:
将后端 Java 接口文档转换为前端 TypeScript 类型定义(interface / type)。输入:飞书文档、Spring Boot 接口文档、Swagger/OpenAPI、手写 API 文档等。输出:包含请求参数与响应结果的 .md 文件,含完整 JSDoc 注释。触发关键词:Java 转 TS、接口转换、生成前端类型、接口文档转 TypeScript、DTO/VO/BO 转 interface、后端文档转前端类型、生成接口类型、类型定义生成。
function Person(name) {
this.name = name; // this 指向 new 创建的实例
this.sayHello = function() {
return `Hello, I'm ${this.name}`;
};
}
const alice = new Person('Alice');
console.log(alice.name); // 'Alice'
console.log(alice.sayHello()); // 'Hello, I'm Alice'
console.log(alice instanceof Person); // true
注意:箭头函数没有自己的 this,不适用 new 绑定
箭头函数不绑定 this,也不可被 new 调用。如果你尝试 new () => {},会直接抛出 TypeError。只有普通函数(包括 function 声明、function 表达式、class 构造器)才支持 new 绑定。
class 语法本质也是 new 绑定
ES6 的 class 只是语法糖,其 constructor 仍依赖 new 绑定:
class Animal {
constructor(species) {
this.species = species; // this 仍是 new 创建的实例
}
}
const dog = new Animal('Dog'); // this → dog
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










