function add(a,b){ alert(a+b); } function reduce(a,b){ alert(a-b); } add.call(reduce,1,3) //将add方法运用到reduce,结果为4
二、call可以改变this指向
如下例:
代码如下
function b(){ alert(this) } b(); //window b.call(); //window b.call(“a”,2,3); //a
再看一个复杂的例子:
代码如下
复制代码
function Animal(){ this.name=”animal”; this.showName=function(){ alert(this.name) } } function Cat(){ this.name=”cat”; } var animal = new Animal(); var cat = new Cat(); animal.showName(); //结果为animal animal.showName.call(cat); //原本cat没有showName方法,但是通过call方法将animal的showName方法应用到cat上,因此结果为cat
三、实现继承
如下例子:
代码如下
复制代码
function Animal(name){ this.name=name; this.showName=function(){ alert(this.name) } } function Cat(name){ Animal.call(this,name); //将Animal应用到Cat上,因此Cat拥有了Animal的所有属性和方法 } var cat = new Cat(“Black Cat”); cat.showName(); //浏览器弹出Black Cat