函数的参数作为参数传递

时间:2014-02-24 20:23:36

标签: javascript reflection

不使用任何即将被弃用的行为,是否可以从函数中获取参数,函数本身是作为函数传递的? E.g。

function lowerOrder(x) {
    console.log('lower order: ');
    console.log(arguments);
}
function higherOrder(fx) {
    console.log('higher order: ');
    console.log(arguments);
};

higherOrder(lowerOrder); //in Chrome I can expand these results and see an arguments object (which is null)

VS。

function lowerOrder(x) {
    console.log('lower order: ');
    console.log(arguments);
}
function higherOrder(fx) {
    console.log('higher order: ');
    console.log(arguments);
};

higherOrder(lowerOrder(4)); //higher order function is undefined
                            //lower order correctly prints 4

如果将诸如lowerOrder(4)之类的函数传递给higherOrder,是否可以同时获取传递的函数的名称及其来自higherOrder的参数?

1 个答案:

答案 0 :(得分:2)

不,原因很简单:在第二个代码中,您未将 lowerOrder传递给higherOrder

相反,您传递的是lowerOrder返回值,这是undefined,因为它没有return语句。