问了一下,这么三个函数的作用是什么?这么三个函数的作用就是调整上下文,即this的指向。在js中,this的指向是琢磨不定的,往往有四条规律可以总结它,
- 在全局空间中调用函数,this往往会指向window,而在严格模式下,会指向undefined。
- 在对象的方法中调用this,往往会指向该对象,但是这种方式很容易造成this的隐性丢失
- 显示调用,即使用apply、call、bind等对this进行显式指向,this会指向指定的元素。
- new构造函数时的this,会指向新生成的实例。
在讲讲它们之间的区别:
apply和call的区别是,apply只接受两个参数,一个是this的指向参数,另一个则是数组类型的参数;而call后面可以接受多个参数。
bind和前两者的区别就是bind绑定完之后,函数并不直接运行,并且bind的绑定是硬绑定,无法被修改;而前两者绑定完之后,直接调用函数。
apply、call和bind的区别
最新推荐文章于 2022-04-24 21:09:38 发布