位置: 编程技术 - 正文

深入理解JS中的Function.prototype.bind()方法(js中...用法)

编辑:rootadmin

推荐整理分享深入理解JS中的Function.prototype.bind()方法(js中...用法),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:js的define,js的fixed,js怎么理解,js的define,js怎么理解,js怎么理解,js怎么理解,js的define,内容如对您有帮助,希望把文章链接给更多的朋友!

前言

对于函数绑定(Function binding)很有可能是大家在使用JavaScript时最少关注的一点,但是当你意识到你需要一个解决方案来解决如何在另一个函数中保持this上下文的时候,你真正需要的其实就是 Function.prototype.bind() ,只是你有可能仍然没有意识到这点。

第一次遇到这个问题的时候,你可能倾向于将this设置到一个变量上,这样你可以在改变了上下文之后继续引用到它。

一. bind的语法

bind() 方法的主要作用就是将函数绑定至某个对象,bind() 方法会创建一个函数,函数体内this对象的值会被绑定到传入bind() 函数的值。

1.1 定义

bind()的定义如下:

The bind() method creates a new function that, when called, has its this keyword set to the provided value, with a given sequence of arguments preceding any provided when the new function is called.

bind() 函数会创建一个新函数(称为绑定函数),新函数与被调函数(绑定函数的目标函数)具有相同的函数体。当目标函数被调用时 this 值绑定到 bind() 的第一个参数,该参数不能被重写。

1.2 原理

可以用如下代码模拟bind()的原理:

深入理解JS中的Function.prototype.bind()方法(js中...用法)

1.3 语法

二. bind的应用场景

2.1 实现对象继承

2.2 事件处理

2.3 时间间隔函数

2.4 借用Array的原生方法

三. bind()方法的浏览器兼容性

四. bind()的兼容性写法

五. bind与 call/apply方法的区别

共同点:

都可以改变函数执行的上下文环境;

不同点:

bind: 不立即执行函数,一般用在异步调用和事件; call/apply: 立即执行函数。

总结

好了,

本文链接地址:https://www.jiuchutong.com/biancheng/373605.html 转载请保留说明!

上一篇:Javascript 事件冒泡机制详细介绍

下一篇:javascript对浅拷贝和深拷贝的详解(js浅拷贝的方法)

免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

鄂ICP备2023003026号

网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

友情链接: 武汉网站建设 电脑维修 湖南楚通运网络