javascript构造函数初始化分四步:一创建空对象;二绑定原型链;三执行函数体并绑定this;四返回实例或显式返回的非null对象。

JavaScript 中构造函数本身不会“分段执行”,但它的初始化过程天然分为几个明确阶段,这些阶段由 new 运算符自动触发,不可跳过、不可颠倒。理解这四步,就能清楚为什么某些写法会报错(比如在构造函数里访问还没赋值的属性),也能写出更健壮的初始化逻辑。
第一步:创建空对象
引擎内部生成一个全新的、空的普通对象({}),这个对象暂时没有自有属性,原型链也尚未链接。
第二步:绑定原型
将这个空对象的内部属性 [[Prototype]] 指向构造函数的 prototype 对象。这意味着后续通过该实例调用的方法(如 obj.sayHello()),实际是从构造函数的 prototype 上查找的。
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
第三步:执行构造函数体(this 绑定后)
此时才真正开始执行你写的函数体代码,this 已指向刚创建的那个空对象。这一阶段完成所有属性赋值和方法挂载:
- 直接写
this.name = name是给实例添加自有属性 - 写
this.init = function() {...}是在实例上定义方法(不推荐,浪费内存) - 如果构造函数里调用了其他方法(如
this.setup()),这些方法必须已定义且能访问到当前this
第四步:返回结果
默认返回第三步中那个被 this 修改过的对象;但如果构造函数显式 return 了一个**非 null 的对象**,则返回该对象,丢弃新创建的实例。
-
return {}→ 返回这个新对象 -
return 42或return undefined→ 忽略,仍返回实例
不复杂但容易忽略
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










