.shift()之后调用函数

时间:2016-01-11 18:57:26

标签: javascript

我正在创建一系列功能。

var wrapFunction = function(fn, context, params) {
    return function() {
          fn.apply(context, params);
    };
}

var sayStuff = function(str) {
     //do work & return something
    return str;
}

var fun1 = wrapFunction(sayStuff, this, ["Hello, world!"]);

que = []
que.push(fun1);

现在我正在这样做:

var current = que.shift()
current();

这很好用,但是有办法调用que.shift&将所有函数一直运行到我的sayStuff函数;以便 current === 'Hello, world!'

我尝试了(que.shift())();,但它并没有触发整个周期。

2 个答案:

答案 0 :(得分:2)

如果(que.shift())(); return来电的价值为fn.apply

return fn.apply(context, params);应该有效:

return

答案 1 :(得分:1)

您应该在匿名函数中添加var wrapFunction = function(fn, context, params) { return function() { return fn.apply(context, params); // <-- Insert return here }; };

que.shift()(); // "Hello, world!"

然后,

select
    PetID,
    min(case when ColumnID = 1 then Value end) as Name,
    min(case when ColumnID = 2 then Value end) as Type,
    min(case when ColumnID = 3 then Value end) as Color
from @Temp
group by PetID