美文网首页
call,apply,bind的区别

call,apply,bind的区别

作者: 郭先生_515 | 来源:发表于2020-04-18 11:53 被阅读0次

它们都可以改变当前对象的this指向问题

let obj = {
    name: this.name,
    age: this.age,
    objFun: function(fm, t) {
        console.log(`姓名:${this.name}, 年龄:${this.age}, 来自:${fm}, 去:${t}`);
    }
}

let my = {
    name: 'Guoda',
    age: 99
}

obj.objFun.call(my, '河南', '北京')
obj.objFun.apply(my, ['河南', '北京'])
obj.objFun.bind(my, '河南', '北京')()
obj.objFun.bind(my, ['河南', '北京'])()

根据控制台输出:

14----姓名:Guoda, 年龄:99, 来自:河南, 去:北京
15----姓名:Guoda, 年龄:99, 来自:河南, 去:北京
16----姓名:Guoda, 年龄:99, 来自:河南, 去:北京
17----姓名:Guoda, 年龄:99, 来自:河南,北京, 去:undefined

从上面结果可以看出:

call 、bind 、 apply 这三个函数的第一个参数都是 this 的指向对象,差别在于第二个参数

call 的参数是直接放进去的,第二,第三,第 n 个参数,全都用逗号分隔,直接放在后面。

apply 的所有参数都必须放在一个数组里面传进去。

bind 除了返回是函数以外,它的参数和 call 一样。

相关文章

  • 理解JS中的 call, apply, bind方法

    call, apply, bind 方法的目的和区别 我们常说,call(), apply(),bind()方法的...

  • this_原型链_继承

    this相关问题 apply、call 、bind的作用以及区别 call、apply和bind方法的用法以及区别...

  • this&原型链&继承

    this 1. apply、call 、bind有什么作用,什么区别? apply、call 、bind 都是用来...

  • 关于 this_原型链_继承 相关问题总结

    关于this 1- apply、call 、bind的作用和区别 apply、call 、bind都有改变thi...

  • this_原型链_继承

    this 相关 1. apply、call 、bind有什么作用,什么区别 apply、call、bind可以改变...

  • this_原型链_继承

    问题1: apply、call 、bind有什么作用,什么区别? apply和call call apply,调用...

  • this 原型链 继承

    this 相关问题 1.apply、call 、bind有什么作用,什么区别 apply、call 、bind这三...

  • call(),apply()和bind()

    call、apply和bind函数存在的区别:bind返回对应函数, 便于稍后调用; apply, call则是立...

  • this 相关问题

    问题1: apply、call 、bind有什么作用,什么区别 apply call bind 问题2: 以下代码...

  • js继承

    问题1: apply、call 、bind有什么作用,什么区别 apply/call/bind 问题2: 以下代码...

网友评论

      本文标题:call,apply,bind的区别

      本文链接:https://www.haomeiwen.com/subject/aglvvhtx.html