apply(o,arguments)、call(o,[arg1,agr2,...]) 这两个方法的作用就是在将定的作用域中调用函数,即所有函数内部的this指针都会被赋值为o,其目的是实现将函数作为另外一个对象的方法运行 。
引用网上一个代码段:
apply和call的第一个参数的意义是一样的,但第二个参数就不同,call的是call的参数arguments,apply传入的是参数数组,apply(o, [arg1,arg2,...].
引用网上一个代码段:
function Obj(){this.value="对象!";}
var value="global 变量";
function Fun1(){alert(this.value);}
window.Fun1(); //global 变量
Fun1.call(window); //global 变量
Fun1.call(document.getElementById('myText')); //input text
Fun1.call(new Obj()); //对象!
apply和call的第一个参数的意义是一样的,但第二个参数就不同,call的是call的参数arguments,apply传入的是参数数组,apply(o, [arg1,arg2,...].