感觉call和apply就是继承的时候,可以指向的函数不同来传递参数,调用方法,看代码
function f1() { this.p="1---"; this.A=function (arg) { alert(this.p+arg) } } function f2() { this.p="2---"; this.B=function (arg) { alert(this.p+arg) } }// 实例化f1这个函数 var fn1=new f1(); var fn2=new f2();// 调用A方法,使用apply指向fn1这个实例化的对象,传递参数 fn1.A.apply(fn1,["this is apply (fn1)"]) //1---1// 调用A方法,使用apply指向fn2这个实例化的对象,传递参数 fn1.A.apply(fn2,["this is apply (fn2)"]) //2---1 // 调用B方法使用call指向fn1这个实例化的对象,传递参数 fn2.B.call(fn1,"this is call (fn1)")// 调用B方法使用call指向fn2这个实例化的对象,传递参数 fn2.B.call(fn2,"this is call (fn2)")
时间: 2024-10-26 11:16:35