为了账号安全,请及时绑定邮箱和手机立即绑定

请教一下。。。函数没有输出

请教一下。。。函数没有输出

慕数据4485210 2016-02-25 18:50:59
function showColor(){   var color = "red";   function myColor(){     var myColor = "bule";       function changeColor(){         var changeColor = myColor;         myColor = color;         color = changeColor;         alert(color);         }       }     }检查了好久,这个函数为什么没有输出呢
查看完整描述

4 回答

已采纳
?
h5

TA贡献19条经验 获得超9个赞

function showColor(){
  var color = "red";
  function myColor(){
    var myColor = "bule";
    function changeColor(){
      var changeColor = myColor;
      myColor = color;
      color = changeColor;
      alert(color);
     }
    changeColor()
   }
  myColor()
}

showColor()


查看完整回答
2 反对 回复 2016-02-25
  • NodeOS
    NodeOS
    你这段代码跑不出来,含水不能嵌套定义,也就是说: function a() { function b(){ } } 这段代码里面,在a函数内部定义b函数是错误的,只能在a函数外部定义b函数,像这样: function a(){} function b(){}
  • ruibin
    ruibin
    乱说,你让闭包如何是好?
  • NodeOS
    NodeOS
    还真是!不好意思,学艺不精,差点误人子弟了!
?
ruibin

TA贡献358条经验 获得超213个赞

这个函数完全正确啊,这就是一个闭包而已,没有输出的原因是你没有调用,在每个函数后面调用一次就ok了。

查看完整回答
2 反对 回复 2016-02-26
?
Halo_

TA贡献23条经验 获得超10个赞

这函数体里面也只是定义函数,并没有调用啊。调这个吧exchangeColor('red' , 'blue');

function exchangeColor(c1,c2){

    var temp = c1;

    c1=c2;

    c2 = temp;

}



查看完整回答
反对 回复 2016-02-26
?
NodeOS

TA贡献2条经验 获得超0个赞

1、蓝色的英文“blue”拼写错误;

2、其实你这段代码的本意应该是交换颜色吧?声明一个变量没必要建个函数,函数嵌套的引用也不能这样,其实你的代码完全可以简化成以下部分从而实现交换颜色的功能:

    var color = "red";
    var myColor = "blue";
    function changeColor()
    {
        var changeColor = myColor;
        myColor = color;
        color = changeColor;
        alert(color);
    }
查看完整回答
反对 回复 2016-02-25
  • NodeOS
    NodeOS
    换句话说,函数可以嵌套引用,但是不能嵌套定义。
  • 慕数据4485210
    慕数据4485210
    谢谢您~ 明白了,我写这个函数的意义是为了更明白嵌套函数如何运作。
  • 慕数据4485210
    慕数据4485210
    函数不可以嵌套定义吗?
  • 4 回答
  • 0 关注
  • 2011 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信