我试图用Pluralsight理解pub / sub设计模式,并且有一行我不理解的代码。
每个js方法中都有arguments
,但它不是。
在pub方法中,他们使用参数迭代并调用每个回调并返回该方法发送的参数。
它看起来像这样:
define("EventHandler", [], function () {
var cache = {};
return {
pub: function(id)
{
var args = [].splice.call(arguments, 1);
if (!cache[id])
cache[id] = [];
for (var i = 0; i < cache[id].length; i++) {
cache[id][i].apply(null, args);
}
},
sub: function(id, callback)
{
if (!cache[id])
cache[id] = [callback];
else
cache[id].push(callback);
}
}});
我不明白的一句话是:
var args = [].splice.call(arguments, 1);
提前感谢。