JS学习之call与apply
call:调用函数并且改变this的指向。
语法 函数名.call(thisArg,arg1,arg2...) ( 函数名.apply(thisArg,[arg1,arg2...]) )
参数:
thisArg 函数中this指向的值
arg1,arg2... 从call里的第二个参数开始,都是真正函数的参数
返回值:
undefined
注意:thisArg的值为null,undefined的时候,this的值指向了window
apply 调用函数并且改变this的指向
语法:
函数名.apply(thisArg,[arg1,arg2...]);
与call不同的是后面的参数必须放在数组中
function fn(){
console.log(this); //打印下看看this的指向
}
fn(); // window
fn.call(1); // 1 this指向了数字1
fn.call('xubj'); //xubj 指向了字符串
fn.call(true); // true 指向了布尔的true
fn.call({}); // {} 指向了对象
fn.call(null); // window
fn.call(undefined); // window