this
1.以函数形式调用,window
2.以方法形式调用,方法的对象
3.以构造函数形式调用,构造函数新创建的那个对象
5.以call和apply形式调用,指定的那个对象
1.call和apply是函数的方法,要通过函数对象来调用
2.当对函数调用该方法时,都会调用函数执行
3.在调用call和apply可以将对象作为一个参数,此时这个对象就会成为执行函数的this,
4.所以可以通过call和apply修改this(上下文对象)
5.call()将实参一次传入
6.apply()需要将实参封装到一个数组里统一传入
function () {
console.log(this)
}
var obj={
}
//window对象
fun(obj);
//window对象
fun();
//obj对象
fun.call(obj);
fun.apply(obj);
//修改this
function fun (a,b) {
console.log("a="+a)
console.log("b="+b)
}
var obj={
}
fun(); //a=undefinedb=undefined
fun.call(obj,1,2); //a=1,b=2
fun.apply(obj,[1,2])//a=1,b=2