使用JavaScript进行面向对象开发 互动版

在线工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器

优化的继承方法

很明显,直接继承方法所得到的结果,并不是我们所期望的。子类的修改不应该对父类造成影响。那我们不能让父类的原型直接赋给子类的原型,而用父类型的一个副本就行了。

leader.prototype = new worker();

通过这行代码,我们相当于通过创建了一个worker实例,并将这个实例中的各个成员赋值给leader的原型,这样一来,对子类的修改仅仅影响worker的实例,而不会影响worker的原型。

leader.prototype.startWork = function(){
    //some code here;
};

var w = new worker("",0);
var l = new leader("",0);
document.write(w.startWork == l.startWork);    //false
尝试使用该节介绍的方法进行一次类型的继承