【发布时间】:2016-08-13 07:59:34
【问题描述】:
比如说,我需要注册一个onclick 事件,该事件调用另一个函数sayHello() 打招呼,其参数是当前作用域中可用的变量。
我可以使用 IIFE 将变量注入匿名函数的范围,如下所示:
var currentName = "James";
something.onclick = (function(name) {
return function() {
sayHello(name);
};
})(currentName);
但是,我也可以通过bind() 方法使用一个版本的函数柯里化,如下所示:
var currentName = "James";
something.onclick = sayHello.bind(null, currentName);
尽管使用 IIFE 方法可以让您在匿名方法中执行多个函数调用,但将其换成柯里化方法有什么缺点吗?
【问题讨论】:
-
您没有将事件参数传递给
sayHello,而且时间要长得多。 -
您可以作为答案发布,@Bergi,我将标记为已接受的答案。
标签: javascript iife