js权威指南总inherit函数中为什么要先执行function f(){}
发布网友
发布时间:2022-04-22 09:32
我来回答
共1个回答
热心网友
时间:2023-10-27 20:28
继承方法应该类似以下函数:
function inherit(Child, Parent) {
function F() {}; // 定义一个临时函数
F.prototype = Parent.prototype; // 把父类的原型赋给临时函数的原型
Child.prototype = new F(); // 把子类的原型赋值为f的对象
}
这样做可以保证子类只从父类继承来自原型的成员,而不会继承this上的成员。F.prototype = Parent.prototype只是把父类的原型上的成员都赋给了临时函数的原型,new F()就包含了所有原型的成员,之所以不写成Child.prototype = F.prototype,是因为这样就共享了原型,对子类的原型做修改,会影响父类原型。