//1. apply,立即执行函数,两个参数第一个参数为重新定义的this,第二个参数为数据数组中对应的是函数的实参
const obj = {c:3,d:4,g:5}
function applyFun(a,b,c){
console.log(this)//{c:3,d:4,g:5}
console.log(a,b,c)//1,2,3
}
applyFun.apply(obj,[1,2,3])//直接执行applyFun函数
//2. call,立即执行函数,多个参数,第一个参数为重新定义的this,后面的参数为函数的实参
const obj = {c:3,d:4,g:5}
function callFun(a,b,c){
console.log(this)//{c:3,d:4,g:5}
console.log(a,b,c)//1,2,3
}
callFun.call(obj,1,2,3)//直接执行callFun函数
//3. bind,不直接调用函数,返回值为改变this指向后的新函数,第一个参数为指定的this,后面的参数为函数的实参
const obj = {c:3,d:4,g:5}
function bindFun(a,b,c){
console.log(this)//{c:3,d:4,g:5}
console.log(a,b,c)//1,2,3
}
const bindFunNew = bindFun.bind(obj,1,2,3)//不会直接执行函数
bindFunNew()//调用函数
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交