在《你不知道的js(中卷)》中,有一段代码理解的不是很清晰,望大神解析!
代码如下:
function asyncify(fn) {
var orig_fn = fn,
intv = setTimeout(function() {
intv = null;
if (fn) fn();
},0);
fn = null;
return function() {
//触发太快,在定时器intv触发指示异步转换发生之前?
if (intv) {
fn = orig_fn.bind.apply(
orig_fn,
//把封装器的this添加到bind(..)调用的参数中
//以及currying所有传入参数
[this].concat([].slice.call(arguments))
);
}
//已经是异步
else {
//调用原来的函数
orig_fn.apply(this, arguments);
}
};
}
问题一:触发太快那儿,bind那条语句不是很明白。
问题二:这里的currying 怎样理解?
求大神解答!感激不尽!
茅侃侃
相关分类