💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、豆包、星火、月之暗面及文生图、文生视频 广告
## 组合继承 - 综合原型链和盗用构造函数 * 原型链的方式来继承方法,解决方法不能重用的问题 * 盗用构造函数的方式来继承属性,并可以传参 * 父类的构造函数总是被调用两次,导致子类的原型上有不必要的属性和方法 ``` function SuperType(name) { this.name = name this.color = ['red', 'yellow', 'green'] } SuperType.prototype.sayName = function() { console.log(this.name) } function SubType () { // 继承属性 SuperType.call(this, 'tom') // 继承 SuperType } // 继承方法:把方法放在原型上,这样做个子类就可以重用次方法了 SubType.prototype = new SuperType() let instance1 = new SubType() // 执行父类的构造函数,这样每个子类都有自己的属性 color instance1.color.push('pink') console.log(instance1.color) // ['red', 'yellow', 'green', 'pink'] console.log(instance1.name) // tom console.log(instance1.sayName()) // tom let instance2 = new subType('jerry') console.log(instance2.color) // ['red', 'yellow', 'green'] console.log(instance2.sayName()) // jerry ```