我希望从以下功能获得警报。它正在使用(' 10')()而不是(' 10')
function a(m){
return function b(){
alert(m)
}
}
a('10');
答案 0 :(得分:1)
function a(m) {
return function b() {
alert(m)
}
}
a('10');
console.log(typeof a);
// function
console.log(typeof a('10'));
// function
这是因为,当调用a
时,它会从中返回另一个函数。因此,必须明确调用该函数。
这就是为什么我们a('10')()
。
如果这对您来说太混乱,那么只需删除内部函数并在alert
函数本身中调用a
,就像这样
function a(m) {
alert(m);
}
如果警报是在函数内部完成的唯一任务,那么最好直接执行alert
,就像这样
alert(m);
答案 1 :(得分:1)
重新运行自我调用功能
function a(m){
return (function b(){
alert(m)
})(m)
}
现在
a('10') // 10
答案 2 :(得分:-1)
你不需要b功能只是在一个警报。或者,如果您确实将括号转移到返回函数的末尾