我这里有一个稍微高级一点的函数。
虽然这个函数按预期工作:
var square = (a) => a * a;
var callAndLog = (func) => {
return function () {
var res = func.apply(undefined, arguments);
console.log("Result is: " + res);
return res;
}
};
var squareAndLog = callAndLog(square);
squareAndLog(5); // Result is 25
如果我返回一个箭头函数,它不起作用:
var square = (a) => a * a;
var callAndLog = (func) => {
return (() => {
var res = func.apply(undefined, arguments);
console.log("Result is: " + res);
return res;
})
};
var squareAndLog = callAndLog(square);
squareAndLog(5); // Result is NaN
我知道箭头函数比较宽松,所以我在这里尝试在括号
()
中返回它。如果没有括号,它也无法工作。
(...args) => ...
。进一步了解详情请参见this和this。 - Ilja Everilä