call方法
1.可以调用函数
2.可以改变this指向
<script>
function fn() {
console.log(this);//这个时候this指向window
}
fn()
</script>
用到call
<script>
function fn() {
console.log(this);//这个时候this指向window
}
// fn()
var o = {}
fn.call(o)//不仅调用了fn这个函数而且这时函数里的this指向对象o
</script>
第一个参数是改变this指向,后面的参数是传递的实参
apply方法
1.可以调用函数
2.可以改变this指向
第一个参数是改变this指向,第二个要求是一个数组
<script>
function fn(arr) {
console.log(this);
console.log(arr);
}
// fn()
var o = {
uname:"andy"
}
fn.apply(o,["pink"])//后面的参数要求是伪数组
</script>
bind方法
1.不能调用函数
2.可以改变this指向
3.返回的是原函数改变this之后产生的新函数