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..这些做为参数传入.
时间: 2024-10-13 10:52:57