首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >事件/回调函数的IIFE ()

事件/回调函数的IIFE ()
EN

Stack Overflow用户
提问于 2016-04-20 14:36:56
回答 1查看 2.8K关注 0票数 3

例如,我需要注册一个onclick事件,该事件调用另一个函数sayHello()来打招呼,其参数作为当前作用域中可用的变量。

我可以使用IIFE将变量注入匿名函数的范围,如下所示:

代码语言:javascript
复制
var currentName = "James";

something.onclick = (function(name) {
    return function() {
        sayHello(name);
    };
})(currentName);

但是,我也可以使用通过bind()方法进行函数运行的版本,如下所示:

代码语言:javascript
复制
var currentName = "James";
something.onclick = sayHello.bind(null, currentName);

尽管使用IIFE方法将允许您在匿名方法中执行不止一个函数调用,但是将其替换为运行方法有什么缺点吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-10 17:01:02

通过bind()方法运行函数

我是部分适用

把生活换成bind有什么坏处吗?

两种方法的不同之处在于,bind传递进一步的参数,而不仅仅是使用name调用sayHello。在这种情况下,事件参数将传递给处理程序,而不是被忽略。当然,这是可以修复的(使用arguments对象或ES6 rest+spread),但是它只会使它变得更加复杂和容易出错。

这是主要的缺点,海事组织:它是相当长,但不必要的长。我更喜欢简约。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36747209

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档