js return

return干嘛的?

举个例子
如下,return后面带个括号,括号里是一个变量r。那么调用函数时就会返回该变量的值。

function myfunction(a, b){ 
  var r; 
  r = a * b; 
  return(r);
}
myfunction(2,3)//6

那么return一个function是什么意思?

function make(x)
{
    return function()
    {
        return x;
    }//inner function over here
    
}//outer function over here
alert(make(0))

结果把function完整的弹了出来。也就是说返回的是函数本身。

js return_第1张图片
image.png

那么如何返回0?也就是内层函数的执行结果而不是内层函数?
有两种方法。第一种make(0)改成make(0)()。这种写法的意思就是内层函数先执行,然后再把结果返回给外层函数。
如果有参数的话,这个第二个括号也可以写参数。

function make(x)
{
    return function()
    {
        return x;
    }//inner function over here
    
}//outer function over here
alert(make(0)())//0

法二:

function make(x)
{
    return function()
    {
        return x;
    }()//inner function over here
    
}//outer function over here
alert(make(0))//0

参考

javascript中的return和闭包函数浅析javascript技巧脚本之家

你可能感兴趣的:(js return)