apply和call属于prototype的属性,这意味着任何对象都可以使用。apply和call的作用在于动态改变函数执行的上下文环境对象。
function test(v1, v2, v3) { alert(v1+v2+v3); } var obj = {}; obj.m = test; obj.m(1,2,3); obj.m.call(this,1,2,3); var args = [1,2,3]; obj.m.apply(this,args);
从结果可以看出:
foo.call(this, arg1,arg2,arg3) == foo.apply(this, arguments)==this.foo(arg1, arg2, arg3),函数执行的上下文对象this始终指向obj。apply和call作用相同,不同的地方在于调用的时候函数参数的传递,call传递的是与函数对应的参数列表,而apply传递的是参数数组。
JavaScript中apply和call的用法区别
最新推荐文章于 2022-10-09 18:15:51 发布