// 在子类型构造函数的内部调用超类型的构造函数// 别忘了,函数只不过是在特定环境中执行代码的对象,因此,通过使用call()和apply()也可以在新创建的对象上执行构造函数 function SuperType(){ this.colors=["red","blue","green"];} function SubType(){ // 继承了SuperType SuperType.call(this); //借调了超类型的构造函数
} var instance1=new SubType();instance1.colors.push("yellow");console.log(instance1.colors); var instance2=new SubType(); // ["red", "blue", "green", "yellow"]console.log(instance2.colors);// ["red", "blue", "green"] // 通过使用call()或apply(),实际上是在新创建的SubType实例的环境下调用了SuperType构造函数,这样一来,就会在,新SubType对象上执行SuperType()函数中定义的所有对象初始化代码。结果,SubType的所有实例都会有自己的colors属性。
时间: 2024-10-12 09:49:46