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

JavaScript call()和apply()与bind()?

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

JavaScript call()和apply()与bind()?

.bind()
当你希望稍后在特定上下文中调用该函数时使用,该事件在事件中很有用。当你想立即调用该函数并修改上下文时,请使用
.call()
.apply()

调用/应用立即调用该函数,而bind返回一个函数,该函数在以后执行时将具有用于调用原始函数的正确上下文集。这样,你可以在异步回调和事件中维护上下文。

我经常这样做:

function MyObject(element) {    this.elm = element;    element.addEventListener('click', this.onClick.bind(this), false);};MyObject.prototype.onClick = function(e) {     var t=this;  //do something with [t]...    //without bind the context of this function wouldn't be a MyObject    //instance as you would normally expect.};

我在

Node.js
中将它广泛用于异步回调,我想为其传递成员方法,但仍希望上下文成为启动异步操作的实例。

一个简单,简单的bind实现是:

Function.prototype.bind = function(ctx) {    var fn = this;    return function() {        fn.apply(ctx, arguments);    };};

它还有更多的功能(就像传递其他args一样),但是你可以阅读更多有关它的内容,并查看MDN上的实际实现。

希望这可以帮助。



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

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

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