call apply bind 的区别,this的四种绑定方式

Posted 一颗豆子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了call apply bind 的区别,this的四种绑定方式相关的知识,希望对你有一定的参考价值。

1. apply()中有两个参数,不一定是必填项,当第一个参数什么都不填或则是null/undefined,默认为window

第二个参数必须是数组,数组中的元素和函数的参数对应

Call怎么使用
用途,用于修改函数中的this指向 也是函数ming.call(),执行的元素先替换函数中的this,然后再执行这个函数

Call中参数的分析
1. call函数的第一个参数是什么,函数中this就换成什么,当不填或null/undefined,里面的this就是window
2. 从第二参数开始,跟函数的形参要一一对应

Bind的使用
Bind的使用,不是用在执行的时候,而是用再函数定义的时候,只有一个参数,用于替换this的。

 

总结this
函数中的this有四种绑定方式
函数中的this指向当前函数所处的生存环境,谁调用了它,this就指向谁。
Js中给我们提供了四种绑定方式用于修改this
1.直接绑定方式(默认绑定方式)优先级最低
针对普通的函数,this就是window(只要函数调用的时候前面没有带.)

2.隐式绑定方式 当作对象方法来调用(这个函数在调用的时候前面带.了) 它的优先级比直接绑定高一些

注意:出现连续性的对象方法操作,this采用就近原则。

this是obj对象也行,说是o.oo对象也行,二者指向的内存地址是一样的。
3. 显示绑定,apply call bind的绑定方式
已讲 看上面的笔记
4,new 的绑定方式。
New帮定的优先级>显示绑定>隐式绑定>直接绑定

以上是关于call apply bind 的区别,this的四种绑定方式的主要内容,如果未能解决你的问题,请参考以下文章

call,apply,bind的区别

call apply bind的区别

js中的call,apply,bind区别

区别call,apply,bind

call 和 apply 和 bind的区别

改变this指针的apply,call,bind的区别