Javascript call apply

  • Post author:
  • Post category:java



call


方法



call([thisObj[,arg1[, arg2[,…[,.argN]]]]])


调用一个对象的一个方法,以另一个对象替换当前对象。


call


方法可将一个函数的对象上下文从初始的上下文改变为由


thisObj


指定的新对象。如果没有提供


thisObj


参数,那么


Global


对象被用作


thisObj





说明白一点其实就是


更改对象的内部指针


,即


改变对象的


this


指向的内容


。这在面向对象的


js


编程过程中有时是很有用的。


call


函数和


apply


方法的第一个参数都是要传入给当前对象的对象,及函数内部的


this


。后面的参数都是传递给当前对象的参数。



运行如下代码:




<script>









var


func=


new


function


(){



this


.a=”func”}









var


myfunc=


function


(x){















var


a=”myfunc”;












alert(


this


.a);












alert(x);








}








myfunc.call(func,”var”);





</script>



可见


分别弹出了


func





var





//


先调用


func


函数,用


this.a=”func”


替换


myfunc


中的


this.a ;


然后将


”var”


传递给方法


myfunc


的参数


x


对于


apply





call


两者在



作用上



是相同的,但两者在



参数上



有区别的。





func.call(func1,var1,var2,var3)==func.apply(func1,[var1,var2,var3])



版权声明:本文为Poy3344原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。