function fn(...args) {
console.log(this.uname)
console.log(args)
}
// bind,改变this指向,返回函数,可传参
let obj1 = {
uname: '小明',
}
fn.bind(obj1)('我是小明参数')
// call,改变this指向,并执行函数,普通传参
let obj2 = {
uname: '小王',
}
fn.call(obj2, '我是小王的参数', 123)
// apply,改变this指向,并执行函数,数组传参
let obj3 = {
uname: '小刚',
}
fn.apply(obj3, ['我是小刚的第一个参数', '我是小刚的第二个参数'])
// [ '我是小明参数' ]
// 小明
// [ '我是小王的参数' ]
// 小王
// [ '我是小刚的第一个参数', '我是小刚的第二个参数' ]
// 小刚
bind,call,apply的使用以及不同之处
于 2022-09-27 20:25:34 首次发布