对象冒充继承和原型链继承的区别

//继承 call 原型链+对象冒充方法实现
function Person(name,age){
    this.name=name;
    this.age=age;
    this.run=function(){
        console.log(this.name+'---------'+this.age);
    }
}
Person.prototype.work=function(){

}
function Web(name,age){
    Person.call(this,name,age);  //对象冒充实现继承  可实现传值,没法继承原型链上的属性和方法,work is not a function
}
Web.prototype=new Person(); //原型链继承  可继承构造函数里面和原型链上的work方法和属性,但是实例化子类的时候没法给父类传参
var w=new Web('李四',20);
w.run();

 

posted @ 2019-08-19 17:24  聂小恶  阅读(253)  评论(0编辑  收藏  举报