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>
本文探讨了JavaScript中`call`和`apply`方法的作用,包括如何改变函数内部的`this`指针以及它们的区别。通过实例展示了如何使用这两个方法在不同上下文中调用函数。
911

被折叠的 条评论
为什么被折叠?



