JavaScript函数嵌套函数怎么调用

JavaScript024

JavaScript函数嵌套函数怎么调用,第1张

题主是说在 run 外部调用 a、b、c?

那是不可能的,使用嵌套函数的目的就是为了让外部无法调用,以达到封装性的目的。

可以使用折衷的办法:

function run(obj){

    function a(){

        return '我不爱你'

    }

    function b(){

        return '我爱你'

    }

    function c(){

        return '我只喜欢你'

    }

    

    switch(obj){

        case 'a':

            return a()

            break

        case 'b':

            return b()

            break

        case 'c':

            return c()

            break 

    }

    return null

}

使用时:

alert(run('a'))

alert(run('b'))

alert(run('c'))

function myWrite(str){ document.write(str+"<br/>") }function myFun(){ function mySum(x,y) { var z=x+yreturn z } var b=mySum(1,6) myWrite(b) }myFun()1.函数嵌套定义只能出现在函数,不能出现在选择语句或循环语句中;2.嵌套定义的函数只能在嵌套的函数中使用;如上 mySum函数只能在myFun函数调用;不能再其他函数中调用,如myWrite函数;也不能再myFun函数的其他顶层全局代码中调用.

方法嵌套实际是要实现一种循环,是循环就有两个要素:一个是终止条件,一个是增量。

嵌套函数和普通函数有一点不同: 

    既然是嵌套函数,就是把自身当作值运用到函数体内。这就要求函数必须有一个返回值。就要用return语句。

 

function a(x){ 

    if(x<=1) 

        return 1 

    else 

        return x*a(x-1) 

//上述示例是一个嵌套函数,来确定一下循环要素:if(x<=1) return 1这是终止条件,当x<=1时终止,else return x*a(x-1)这是增量,每次嵌套调用函数a()时参数都会减1  

function a(x){ 

    if(x<=1)

         return 1 

    else{ 

        var m=1 

        for(var i=2i<=xi++){ 

            m*=i 

        } 

        return m 

    } 

//上述示例嵌套函数就是要实现这样的循环