如何改变this 指向
1.apply
参数第一个用this,后面用数组。
function test(a,b){
var c=a+b;
console.log(this);
console.log(c)
}
var obj = {
name:'lisa',
age:26
}
test.apply(obj,[1,2])
2.call
参数第一个this,第二位之后传递的参数
function test(a,b){
var c=a+b;
console.log(this);
console.log(c)
}
var obj = {
name:'lisa',
age:26
}
test.call(obj,1,2)
3.bind
参数第一个this,第二位传递的参数,但是此函数调用,不会马上执行,返回值是一个含糊
function test(a,b){
var c=a+b;
console.log(this);
console.log(c)
}
var obj = {
name:'lisa',
age:26
}
test.bind(obj,1,2)//此时没有执行,反返回了一个新的函数
test.bind(obj,1,2)()//此时才把返回的函数执行了
//参数是按照形参的顺序进行的
let a = {
user:"追梦子",
fn:function(e,d,f){
console.log(this.user); //追梦子
console.log(e,d,f); //10 1 2
}
}
let b = a.fn;
let c = b.bind(a,10);
c(1,2);
未来的我会感谢现在努力的自己。