函数function的方法call()以及apply()
1.这两个方法十分重要:可以改变函数的作用域,也就是改变函数中的this
使用call()方法的时候,必须明确传入每一个参数,结果跟apply()是一样的,废话不多说,下面来一个简单的案例,便于理解
1 function sayColor(x,y) { 2 alert( this.color + ",x=" + x + ",y=" + y); 3 } 4 5 var color = "blue" ; 6 var o = { color: "red" }; 7 8 //call/apply方法 可以调用前面的方法,并为方法里的this赋值! 9 sayColor.call(window, 110,220); //call后面不一定传入数组,也可以为空 10 sayColor.apply(o, [112, 120]); //apply最后面要传入一个数组
call方法显示结果:
apply方法显示结果: