js中apply、call和bind的区别?
时间:2022-09-10 14:30:00
一、bind、call、apply都是用来改变的this指向的
1.call的用法:
let Abao = { name:"啊爆", mgs:"我是帅哥", say(mgs){ console.log("我叫",this.name); console.log("我是",mgs); } } let ycy = { name:"杨超越", mgs:"我是美女", say(mgs){ console.log("我叫",this.name); console.log("我是",mgs); } } // Abao.say.call(ycy,"靓仔") //将say挂在yyqx上面执行 // ycy.say.apply(Abao,["靓女"]) //apply数组被引入 const say = Abao.say.bind(ycy,"我不是靓女") say() //输出: // 我叫 杨超越 // 我是 我不是靓女
2.apply的用法:
1.call和apply传参方式不同,apply数组引入参数。
2.bind和call、apply返回值不同,bind是返回函数,call和apply函数调用是返回的。