2014-03-19 100 views

回答

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')()

如果这是你太混乱了,然后刚落内部函数,并在a函数本身调用alert,这样

function a(m) { 
    alert(m); 
} 

如果警告是在函数内部做的唯一任务,你最好了与直接执行alert,这样

alert(m); 
+0

我喜欢带一些说明的答案。谢谢 – Carlos

1

重新运行的自调用函数

function a(m){ 
    return (function b(){ 
     alert(m) 
    })(m) 
} 

现在

a('10') // 10 
-1

你不需要B功能只是在一个警报。或者,如果您确实将括号转移到返回函数末尾

+0

我的问题是调用子函数 – Carlos

+0

你是正确的,修复它 – knightsb