构造函数和实例是“模板”与“产物”的关系:构造函数定义结构与行为,实例是依据该定义生成的具体对象;new执行四步创建实例,实例共享原型方法但拥有独立属性,且person1.__proto__ === person.prototype恒成立。

构造函数和实例的关系,本质是“模板”和“产物”的关系——构造函数定义结构与行为,实例是依据该定义生成的具体对象。
构造函数:对象的创建蓝图
它是一个普通函数,但被约定用大写字母开头,并配合 new 关键字使用。它不直接返回对象,而是通过 this 为即将生成的对象初始化属性和方法。
- 函数内部的 this 指向新创建的空对象(new 第一步自动完成)
- 所有在函数内用 this.xxx = xxx 赋值的,都会成为该实例的自有属性或方法
- 没有 return 或返回基本类型时,new 自动返回这个新对象
new 的四步执行过程(核心原理)
每次写 const obj = new Person('张三', 25),JS 引擎实际做了四件事:
- 在内存中创建一个全新的空对象 {}
- 将该空对象的内部 [[Prototype]](浏览器中可访问为 __proto__)指向 Person.prototype
- 把构造函数中的 this 绑定到这个新对象,并执行函数体(添加属性、方法)
- 若构造函数未显式返回对象,则默认返回这个新对象;否则返回该对象
实例:构造函数的“一次具象化”
每个实例都是独立的个体,拥有自己的属性副本(如 name、age),但它们共享同一套原型方法(通过 __proto__ 链接到 Person.prototype)。
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- 实例之间互不影响:修改 person1.name 不会影响 person2.name
- 实例无法访问构造函数自身的静态属性(如 Person.count),只能访问 this 上挂载的或原型上继承的内容
- 可通过 person1.constructor === Person 反查其构造来源(因原型对象默认有 constructor 属性)
关键恒等式帮你验证关系
任何时候都可以用这行代码确认实例与构造函数原型的连接是否成立:
person1.__proto__ === Person.prototype // 返回 true
这个等式是理解原型链的起点,也是构造函数能实现复用与继承的底层支撑。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










