function parentFn(n){
console.log('外层是有n的',n)
// if(m){
// console.log('外层有m',m)
// }
return function(m){
console.log('n:',n);
console.log('m:',m);
}
}
const newFunction = parentFn('outside');
newFunction('inside');
它这里的传参是一层一层的,
最外层的函数在没有return之前是接收不到里层函数的值的
好多高阶组件都是这样的一种结构
// 高阶函数:为传入的函数添加日志功能
function logWrapper(originalFunction) {
return function(...args) {
console.log(`Calling function with arguments: ${args}`);
// 调用原始函数并返回结果
const result = originalFunction(...args);
console.log(`Function returned: ${result}`);
// 返回原始函数的计算结果
return result;
};
}
// 定义一个简单的加法函数
function add(a, b) {
return a + b;
}
// 使用高阶函数包裹加法函数
const loggedAdd = logWrapper(add);
// 现在调用loggedAdd时,不仅会执行加法操作,还会打印日志信息
console.log(loggedAdd(3, 5));