首先第一种方法,通过拓展Object来实现继承:
//定义一个父类 function Parent(add){ this.add = add; } //定义一个子类 function Child(name){ this.name = name; } //定义一个全局都可以用的继承方法 Object.prototype.extend = function(ParentObj){ for(var i in ParentObj){ this[i] = ParentObj[i] } }; //使用我们的方法进行继承 Child.extend(Parent('China')); //实例化对象(初始化数据) var obj = new Child('lemon') //此时我们就可以调用父类中的方法或属性了 console.log(obj.add); //输出结果:China
第二种方法,通过call或apply来实现继承,两者用法基本相同
//父类 function Parent(add){ this.add = add; } //子类 function Child(name){ this.name = name; //call方法实现继承 Parent.call(this,'China'); //apply方法实现继承 Parent.apply(this,['China']); /*tip:call方法与apply方法选其一即可,两者使用方法基本一致,在传参的时候略有不同!*/ } //实例化对象 var obj = new Child('lemon') console.log(obj.name+':'+obj.add)
第三种方法,通过prototype实现继承
function Parent(add){ this.add = add; } function Child(name){ this.name = name; } //通过把子类的原型对象改为父类中的对象来实现继承 Child.prototype = new Parent('China'); var obj = new Child('lemon'); console.log(obj.name+':'+obj.add);
你学会了吗?有问题欢迎提出来哟!