栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

为什么需要JavaScript bind()?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

为什么需要JavaScript bind()?

为什么需要Javascript bind()?

this
是决定 如何 一个功能 。如果是
调用该函数,则通常无需使用
.bind
,因为您可以控制调用函数的方式,因此也可以控制其
this
值。

但是,通常 不是 您调用函数。函数作为回调和事件处理程序传递给其他函数。他们被称为 其它 的代码,你有无法控制 如何
调用该函数,因此无法控制

this
将引用。

如果您的函数需要

this
设置为特定值,而您又不是调用该函数的人,则需要
.bind
将该函数设置为特定
this
值。

换句话说:

.bind
允许您设置的值,
this
而不是调用它 现在

这是引用/调用函数的比较:

         +-------------------+-------------------+         |        |        |         |      time of      |       time of     |         |function execution |    this binding   |         |        |        |+-------------------+-------------------+-------------------+|        |        |        ||  function object  |      future       |      future       ||         f         |        |        ||        |        |        |+-------------------+-------------------+-------------------+|        |        |        ||   function call   |       now         |        now        ||        f()        |        |        ||        |        |        |+-------------------+-------------------+-------------------+|        |        |        ||     f.call()      |       now         |        now        ||     f.apply()     |        |        ||        |        |        |+-------------------+-------------------+-------------------+|        |        |        ||     f.bind()      |      future       |        now        ||        |        |        |+-------------------+-------------------+-------------------+

我还想知道为什么示例3解决了这个问题,以及示例2和示例3之间的区别。

示例1/2和3没什么不同。

storeMyName
storeMyName2
包含 的功能
,这是所谓的未来,而
storeMyName3
包含调用的结果
myName.getName()
的那一刻




转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/442108.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号