美文网首页
call apply bind

call apply bind

作者: 柠栀5102 | 来源:发表于2021-11-26 22:58 被阅读0次

    call apply bind 更改方法里面this的指向

    使用call()改变方法里面,this的指向

    call()方法的第一个参数必须是指定的对象,方法的原有参数,挨个放在后面

    例:obj.sayHi(200,100)输出打印结果为:Hi!我叫张三,今年20岁,200--100

    obj.sayHi.call(obj2,200,100)输出打印结果为:Hi!我叫李四,今年22岁,200--100

    使用apply(),也可以改变方法里面this的指向,第一个参是指定的对象,方法的原有参数,统一放到第二个数组参数中。

    例:obj.sayHi(200,100)输出打印结果为:Hi!我叫张三,今年20岁,200--100

    obj.sayHi.apply(obj3,[200,100])输出打印结果为:Hi!我叫王五,今年24岁,200--100

    使用bind(),也可以改变方法里面this的指向,用法给call()一样,方法的原有参数可以放在第一个括号,也可以放在调用的第二个括号

    例:obj.sayHi(200,100)输出打印结果为:Hi!我叫张三,今年20岁,200--100

    obj.sayHi.bind(obj4,200,100)()输出打印结果为:Hi!我叫丁一,今年26岁,200--100

    obj.sayHi.bind(obj4)(200,100)输出打印结果为:Hi!我叫丁一,今年26岁,200--100

    call()和apply()是直接运行方法,bind()是返回新的方法,需要再调用。

    相关文章

      网友评论

          本文标题:call apply bind

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