JavaScript中bind call apply的区别

tech2024-12-27  7

bind、call和apply方法的使用

const Obj1 = { name:'小明', sayWhat(what,when){ console.log(`${this.name}${when}${what}`) } } const Obj2 = { name:'小红' } // bind实现方法 // bind的时候传的参数会预先传给返回的方法,调用方法时就不用再传参数了 const sayWhat = Obj1.sayWhat.bind(Obj2,'你好啊','上午2点') sayWhat() // apply实现方法 Obj1.sayWhat.apply(Obj2,['你好啊','上午2点']) // call实现方法 Obj1.sayWhat.call(Obj2,'你好啊','上午2点') // // 结果为小红在上午2点说你好啊

三者区别

bind返回值为函数需要重新执行重新执行时不需要再传递参数,apply和call则为直接调用,不需要另外执行apply传递参数需要传入数组,call和bind则依次传入即可
最新回复(0)