指定this的两个方法call和apply call和apply都是函数的对象方法,需要通过函数对象来调用 当对函数调用call和apply都会调用函数执行 在调用call和apply都可以将一个对象指定为第一个对象 以函数形式调用this就是window但是以上两种方法可以指定为第一个参数作为函数中的this来调用
var obj = {name:"孙悟空", sayname:function () { alert(this.name); } var obj2 = {name:"猪八戒"} obj.sayname.apply(obj2)
![call和apply call和apply](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuam13d3cubmV0L3VwbG9hZHMvYWxsaW1nLzIwMjAvMi9OM1FmcXUucG5n.png?w=700&webp=1)
function fun(a,b) { console.log("a=" a); console.log("b=" b); } var obj = {name:"孙悟空", sayname:function(){ alert(this.name); } } fun.call(obj,2,3); fun.apply(obj,[2,3])