借用构造函数继承无法获取父类原型方法,因其仅执行父类构造函数体内的this赋值操作,不涉及prototype,且子类实例的__proto__未指向Parent.prototype,导致原型链断裂。

因为借用构造函数继承只执行父类构造函数体内的代码,而原型上的方法并不在构造函数体内定义。
它只操作 this,不触碰 prototype
借用构造函数(比如 Parent.call(this, name))的本质,是把父类构造函数当成普通函数来调用,并把 this 绑定到当前子类实例上。此时父类中所有写在 this.xxx = ... 上的属性和函数,都会直接挂载到这个实例本身。但 Parent.prototype.sayName 这类定义在原型对象上的方法,根本不会被这行 call 语句访问或复制。
实例没有建立原型链连接
子类实例的 __proto__ 指向的是 SubType.prototype,而默认情况下这个原型并没有关联到 Parent.prototype。也就是说,原型链断在了子类自己的 prototype 上,没往上连到父类原型。没有这条链,自然查不到父类原型上的方法。
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
对比原型链继承就清楚了
原型链继承通过 SubType.prototype = new Parent() 让子类原型成为父类的一个实例,于是它的 __proto__ 就指向 Parent.prototype,方法就能顺着链找到。而借用构造函数完全绕开了这一步,只做“属性克隆”,不做“链路搭建”。
立即学习“Java免费学习笔记(深入)”;
所以它能解决引用类型共享、支持传参,但代价就是拿不到原型方法——这不是 bug,是设计使然。

















