Javascript 继承 call与prototype

function Parent(hello){
    this.hello = hello;
    this.sayHello = function(){
    alert(this.hello);
}
}
Parent.prototype.sayHello2 = function(){
    alert(this.hello + " Good Morning!");
}

function Child1(hello,world){
    Parent.call(this,hello);
    this.world = world;
}

Child1.prototype = new Parent();

Child1.prototype.sayHelloToo = function(){
    alert(this.hello);
}


var childOne = new Child1("zhangsan","lisi");
childOne.sayHello();
childOne.sayHello2();
childOne.sayHelloToo();

总结:call 不能继承父类prototype方法和属性,可继承“构造函数“中的属性(this.hello = hello;);

   prototype 不能继承父类“构造函数“中的属性(this.hello = hello;),方法可以继承,prototype的属性和方法全继承;

   call理解:call 方法可以用来代替另一个对象调用一个方法,

       obj1.method1.call(obj2,argument1,argument2) 
       如上,call的作用就是把obj1的方法放到obj2上使用(即obj2代替obj1,obj2从此可以调用obj1的方法了,继承就在这里实现的),后面的argument1..这些做为参数传入. 

原文地址:https://www.cnblogs.com/vvonline/p/4306012.html