黑马程序员技术交流社区

标题: 问一个关于javascript的小问题 [打印本页]

作者: 朱京辉    时间: 2013-1-18 18:00
标题: 问一个关于javascript的小问题
本帖最后由 朱京辉 于 2013-1-19 20:45 编辑

js中的function add(){} 定义函数,这个add的函数名级别属于什么?
上课视频中说使用匿名函数var fadd = function(){} 的方法可以避免函数名冲突, 理由在哪里?怎么冲突?

作者: 靳石磊    时间: 2013-1-18 18:15
匿名函数只能使用一次,每次使用都要重新写一遍这个函数。不同的匿名函数是由系统区分的,你没必要纠结这个。
就像变量名是存储空间地址的别名一样,系统可以分清自己存储空间的不同地址~
作者: 朱京辉    时间: 2013-1-18 19:01
靳石磊 发表于 2013-1-18 18:15
匿名函数只能使用一次,每次使用都要重新写一遍这个函数。不同的匿名函数是由系统区分的,你没必要纠结这个 ...

请问只能使用一次,是什么意思,我测试了下在同一个html中,同一个script可以重复使用啊,不同id的script中也可以调用,跨html估计不可以
作者: 王少雷    时间: 2013-1-18 19:20
<script language="JavaScript" type="text/javascript">   
            //aaa();这样调用就会出错   
            var aaa = function(){   
                 alert("A");   
             }   
             aaa();//这样就不会出错   
               
            //先调用后声明   
             bbb();   
            function bbb(){   
                 alert("bb");   
             }   
         </script>  
这么表达能理解了吧。。。就像JAVA类加载变量一样,有点局部顺序问题。
作者: 靳石磊    时间: 2013-1-20 14:23
这样可以的,我以为你的var aaa是得到函数的返回值,是我理解错了。这样的话可以避免函数重名,就是将函数名变量化,因为变量名是不能重复的,重复会报错。这样就不会有重名函数了~




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2