const insideFn = logger => logger("123")
insideFn(message => console.log(message))
为什么会输出“123”,如何理解insideFn这个高阶函数?
const insideFn = logger => logger("123")
insideFn(message => console.log(message))
为什么会输出“123”,如何理解insideFn这个高阶函数?
const insideFn = logger => logger("123")
insideFn(message => console.log(message))
箭头函数如下写:
const insideFn = (logger) => {
return logger("123");
};
insideFn((message)=>{
return console.log(message);
});
再如下写:
const insideFn = function(logger) {
return logger("123");
};
insideFn(function(message){
return console.log(message);
});
△ 这样看,能看懂了吧
调用insideFn
函数时,
1、 实参:一个匿名函数 function(message){ return console.log(message); }
它传进去的是一个堆内存地址,假设地址:AAAFFF000
2、形参logger
接收到它了,指向地址:AAAFFF000
3、return logger('123')
=>return AAAFFF000('123')
即:返回的结果是:调用AAAFFF000('123')函数的返回值
调用AAAFFF000('123') 时,会输出字符串123
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
把函数作为参数传递
可以分解成这段容易理解的函数