美文网首页
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