call 与 apply 的作用都是改变上下文,作用上没有区别,只是使用方式上有点区别。
call 是把函数的参数逐一加在 call 中,apply 是把函数的参数存为数组再加在 apply 中。
示例
<script type="text/javascript">
<!--
function f(a, b)
{
alert(a + "\r\n" + b + "\r\n" + this.c);
}
function O1()
{
this.c = "c1";
this.f = f;
}
function O2()
{
this.c = "c2";
this.f = f;
}
var o1 = new O1();
var o2 = new O2();
f.call(o1, "a1", "a2");
f.apply(o2, ["a1", "a2"]);
-->
</script>
相关阅读