call([thisObj[,arg1[, arg2[, [,.argN]]]]])
其中thisObj可以省略,若省略则Global 对象被用作 thisObj
其实质是更改函数内部的this指针,第一个参数极this指向的对象
apply([thisObj[,argArray]])
两者不同点:apply传入的是一个参数数组,而call则作为call的参数传入
例子:
<input type="text" id="myText" value="input text">
<script>
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()); //对象!
</script>
<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>