栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > 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号